lkml.org 
[lkml]   [2011]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH v4 09/19] ARM: LPAE: Page table maintenance for the 3-level format
    From
    Date
    On Mon, 2011-01-24 at 17:55 +0000, Catalin Marinas wrote:
    > --- a/arch/arm/mm/pgd.c
    > +++ b/arch/arm/mm/pgd.c
    > @@ -80,20 +98,36 @@ void pgd_free(struct mm_struct *mm, pgd_t *pgd_base)
    > if (!pgd_base)
    > return;
    >
    > - pgd = pgd_base + pgd_index(0);
    > - if (pgd_none_or_clear_bad(pgd))
    > - goto no_pgd;
    > + if (!vectors_high()) {
    > + pgd = pgd_base + pgd_index(0);
    > + if (pgd_none_or_clear_bad(pgd))
    > + goto no_pgd;
    >
    > - pmd = pmd_offset(pgd, 0);
    > - if (pmd_none_or_clear_bad(pmd))
    > - goto no_pmd;
    > + pmd = pmd_offset(pgd, 0);
    > + if (pmd_none_or_clear_bad(pmd))
    > + goto no_pmd;
    >
    > - pte = pmd_pgtable(*pmd);
    > - pmd_clear(pmd);
    > - pte_free(mm, pte);
    > + pte = pmd_pgtable(*pmd);
    > + pmd_clear(pmd);
    > + pte_free(mm, pte);
    > no_pmd:
    > - pgd_clear(pgd);
    > - pmd_free(mm, pmd);
    > + pgd_clear(pgd);
    > + pmd_free(mm, pmd);
    > + }
    > no_pgd:

    I pushed some fixups to the arm-lpae branch mentioned in the cover
    letter.

    The hunk above doesn't need to be applied since FIRST_USER_ADDRESS is
    non-zero on ARM and free_pgtables() misses the first PMD when cleaning
    up user page tables (hence leaking some memory).

    --
    Catalin




    \
     
     \ /
      Last update: 2011-02-03 18:11    [W:0.023 / U:30.332 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site