memcg: Fix race condition in memcg_check_events() with this_cpu usage

Various code in memcontrol.c () calls this_cpu_read() on the calculations
to be done from two different percpu variables, or does an open-coded
read-modify-write on a single percpu variable.

Disable preemption throughout these operations so that the writes go to
the correct palces.

[ added this_cpu to __this_cpu conversion]
Signed-off-by: Johannes Weiner <>
Signed-off-by: Steven Rostedt <>
Cc: Greg Thelen <>
Cc: KAMEZAWA Hiroyuki <>
Cc: Balbir Singh <>
Cc: Daisuke Nishimura <>
Cc: Thomas Gleixner <>
Cc: Peter Zijlstra <>
Cc: Christoph Lameter <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
1 file changed