lkml.org 
[lkml]   [2013]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 03/18] mm: Clear pmd_numa before invalidating
    Date
    pmdp_invalidate clears the present bit without taking into account that it
    might be in the _PAGE_NUMA bit leaving the PMD in an unexpected state. Clear
    pmd_numa before invalidating.

    Cc: stable@vger.kernel.org
    Signed-off-by: Mel Gorman <mgorman@suse.de>
    ---
    mm/pgtable-generic.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c
    index cbb3854..e84cad2 100644
    --- a/mm/pgtable-generic.c
    +++ b/mm/pgtable-generic.c
    @@ -191,6 +191,9 @@ pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp)
    void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address,
    pmd_t *pmdp)
    {
    + pmd_t entry = *pmdp;
    + if (pmd_numa(entry))
    + entry = pmd_mknonnuma(entry);
    set_pmd_at(vma->vm_mm, address, pmdp, pmd_mknotpresent(*pmdp));
    flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
    }
    --
    1.8.4


    \
     
     \ /
      Last update: 2013-12-09 08:41    [W:4.307 / U:0.104 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site