diff options
author | Alex Shi <alex.shi@linaro.org> | 2017-10-09 14:31:32 +0800 |
---|---|---|
committer | Alex Shi <alex.shi@linaro.org> | 2017-10-09 14:31:32 +0800 |
commit | 7547ed9d3c6eb3e645f16951864973e342a8994a (patch) | |
tree | 0bbcbf5628f377f775a61336db0af3b9348137dc /mm | |
parent | a38b2dd146c0bba28633fe857f0c4626e0c691cc (diff) | |
parent | f37eb7b586f1dd24a86c50278c65322fc6787722 (diff) |
Merge remote-tracking branch 'lts/linux-4.9.y' into linux-linaro-lsk-v4.9
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memcontrol.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 47559cc0cdcc..2a800c4a39bd 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -462,6 +462,8 @@ static void mem_cgroup_update_tree(struct mem_cgroup *memcg, struct page *page) struct mem_cgroup_tree_per_node *mctz; mctz = soft_limit_tree_from_page(page); + if (!mctz) + return; /* * Necessary to update all ancestors when hierarchy is used. * because their event counter is not touched. @@ -499,7 +501,8 @@ static void mem_cgroup_remove_from_trees(struct mem_cgroup *memcg) for_each_node(nid) { mz = mem_cgroup_nodeinfo(memcg, nid); mctz = soft_limit_tree_node(nid); - mem_cgroup_remove_exceeded(mz, mctz); + if (mctz) + mem_cgroup_remove_exceeded(mz, mctz); } } @@ -2565,7 +2568,7 @@ unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order, * is empty. Do it lockless to prevent lock bouncing. Races * are acceptable as soft limit is best effort anyway. */ - if (RB_EMPTY_ROOT(&mctz->rb_root)) + if (!mctz || RB_EMPTY_ROOT(&mctz->rb_root)) return 0; /* |