memcg: avoid vmpressure oops when memcg disabled
authorHugh Dickins <[email protected]>
Thu, 14 Jan 2016 23:21:37 +0000 (15:21 -0800)
committerLinus Torvalds <[email protected]>
Fri, 15 Jan 2016 00:00:49 +0000 (16:00 -0800)
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 <[email protected]>
Acked-by: Johannes Weiner <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Vladimir Davydov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/vmpressure.c

index 506f03e4be47a13f6dc2240b7497d506ce3f8eee..9a6c0704211c856c300f67057fc202e25c9657ab 100644 (file)
@@ -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);