lkml.org 
[lkml]   [2012]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 5/6] mempolicy: fix a memory corruption by refcount imbalance in alloc_pages_vma()
    Date
    kosaki.motohiro@gmail.com writes:

    > From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    >
    > commit cc9a6c8776 (cpuset: mm: reduce large amounts of memory barrier related
    > damage v3) introduced a memory corruption.
    >
    > shmem_alloc_page() passes pseudo vma and it has one significant unique
    > combination, vma->vm_ops=NULL and (vma->policy->flags & MPOL_F_SHARED).
    >
    > Now, get_vma_policy() does NOT increase a policy ref when vma->vm_ops=NULL
    > and mpol_cond_put() DOES decrease a policy ref when a policy has MPOL_F_SHARED.
    > Therefore, when cpuset race is happen and alloc_pages_vma() fall in
    > 'goto retry_cpuset' path, a policy refcount will be decreased too much and
    > therefore it will make memory corruption.
    >
    > This patch fixes it.

    Looks good.

    Acked-by: Andi Kleen <ak@linux.intel.com>

    -Andi

    --
    ak@linux.intel.com -- Speaking for myself only


    \
     
     \ /
      Last update: 2012-05-30 23:41    [W:2.938 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site