summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugh Dickins <hughd@google.com>2016-01-15 00:21:37 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-15 01:00:49 +0100
commit686739f6af5e8d5687ffebbf1193ff066aada6d9 (patch)
treeefb5e9dbd6cdc5be2e8072ea81651bc0a13aecdc
parentmm: memcontrol: switch to the updated jump-label API (diff)
downloadlinux-686739f6af5e8d5687ffebbf1193ff066aada6d9.tar.xz
linux-686739f6af5e8d5687ffebbf1193ff066aada6d9.zip
memcg: avoid vmpressure oops when memcg disabled
A CONFIG_MEMCG=y kernel booted with "cgroup_disable=memory" crashes on a NULL memcg (but non-NULL root_mem_cgroup) when vmpressure kicks in. Here's the patch I use to avoid that, but you might prefer a test on mem_cgroup_disabled() somewhere. Signed-off-by: Hugh Dickins <hughd@google.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: David S. Miller <davem@davemloft.net> Cc: Vladimir Davydov <vdavydov@virtuozzo.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/vmpressure.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/vmpressure.c b/mm/vmpressure.c
index 506f03e4be47..9a6c0704211c 100644
--- a/mm/vmpressure.c
+++ b/mm/vmpressure.c
@@ -260,7 +260,7 @@ void vmpressure(gfp_t gfp, struct mem_cgroup *memcg, bool tree,
enum vmpressure_levels level;
/* For now, no users for root-level efficiency */
- if (memcg == root_mem_cgroup)
+ if (!memcg || memcg == root_mem_cgroup)
return;
spin_lock(&vmpr->sr_lock);