lkml.org 
[lkml]   [2009]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[035/119] memcg: fix wrong pointer initialization at page migration when memcg is disabled.
    2.6.31-stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>

    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 <Lee.Schermerhorn@hp.com>
    Cc: Balbir Singh <balbir@in.ibm.com>
    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Reviewed-by: 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>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    mm/migrate.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/mm/migrate.c
    +++ b/mm/migrate.c
    @@ -597,7 +597,7 @@ static int unmap_and_move(new_page_t get
    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;



    \
     
     \ /
      Last update: 2009-12-07 01:41    [W:3.808 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site