lkml.org 
[lkml]   [2009]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [BUGFIX][PATCH] memcg: fix wrong pointer initialization at page migration when memcg is disabled.
    On Thu, 29 Oct 2009 09:30:13 +0900, KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> wrote:
    >
    > 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>
    > Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    > Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    > ---
    > mm/memcontrol.c | 3 ++-
    > 1 file changed, 2 insertions(+), 1 deletion(-)
    >
    > Index: linux-2.6.32-rc5/mm/memcontrol.c
    > ===================================================================
    > --- linux-2.6.32-rc5.orig/mm/memcontrol.c
    > +++ linux-2.6.32-rc5/mm/memcontrol.c
    > @@ -1990,7 +1990,8 @@ int mem_cgroup_prepare_migration(struct
    > struct page_cgroup *pc;
    > struct mem_cgroup *mem = NULL;
    > int ret = 0;
    > -
    > + /* this pointer will be checked at end_migration */
    > + *ptr = NULL;
    > if (mem_cgroup_disabled())
    > return 0;
    >
    >
    I thought unmap_and_move() itself initializes "mem" to NULL, but it doesn't...
    I personaly prefer initializing "mem" to NULL in unmap_and_move(), but anyway
    I think this patch is also correct.

    Reviewed-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>

    And I think we should send a fix for this bug to -stable too.


    Thanks,
    Daisuke Nishimura.


    \
     
     \ /
      Last update: 2009-10-29 02:01    [W:0.031 / U:60.804 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site