Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memcg: NULL pointer dereference at rmdir on some NUMA systems

N_POSSIBLE doesn't means there is memory...and force_empty can
visit invalid node which have no pgdat.

To visit all valid nodes, N_HIGH_MEMORY should be used.

Reported-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Tested-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

KAMEZAWA Hiroyuki and committed by
Linus Torvalds
299b4eaa 248ae0d4

+1 -1
+1 -1
mm/memcontrol.c
··· 1685 1685 /* This is for making all *used* pages to be on LRU. */ 1686 1686 lru_add_drain_all(); 1687 1687 ret = 0; 1688 - for_each_node_state(node, N_POSSIBLE) { 1688 + for_each_node_state(node, N_HIGH_MEMORY) { 1689 1689 for (zid = 0; !ret && zid < MAX_NR_ZONES; zid++) { 1690 1690 enum lru_list l; 1691 1691 for_each_lru(l) {