From: KAMEZAWA Hiroyuki Date: Wed, 11 Nov 2009 22:26:26 +0000 (-0800) Subject: memcg: fix wrong pointer initialization at page migration when memcg is disabled. X-Git-Tag: v2.6.31.7~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0c98d0c6dcfb9f3f8608053b41192731630b41cd;p=thirdparty%2Fkernel%2Fstable.git memcg: fix wrong pointer initialization at page migration when memcg is disabled. commit e00e431612c3a6e437a01f2129fd3843da0c982a upstream. Lee Schermerhorn reported that he saw bad pointer dereference in mem_cgroup_end_migration() when he disabled memcg by boot option. memcg's page migration logic works as mem_cgroup_prepare_migration(page, &ptr); do page migration mem_cgroup_end_migration(page, ptr); Now, ptr is not initialized in prepare_migration when memcg is disabled by boot option. This causes panic in end_migration. This patch fixes it. Reported-by: Lee Schermerhorn Cc: Balbir Singh Signed-off-by: KAMEZAWA Hiroyuki Reviewed-by: Daisuke Nishimura Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- diff --git a/mm/migrate.c b/mm/migrate.c index 939888f9ddab2..598abad88f976 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -597,7 +597,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, struct page *newpage = get_new_page(page, private, &result); int rcu_locked = 0; int charge = 0; - struct mem_cgroup *mem; + struct mem_cgroup *mem = NULL; if (!newpage) return -ENOMEM;