• Catalin Marinas's avatar
    arm: set the page table freeing ceiling to TASK_SIZE · 104ad3b3
    Catalin Marinas authored
    ARM processors with LPAE enabled use 3 levels of page tables, with an
    entry in the top level (pgd) covering 1GB of virtual space.  Because of
    the branch relocation limitations on ARM, the loadable modules are
    mapped 16MB below PAGE_OFFSET, making the corresponding 1GB pgd shared
    between kernel modules and user space.
    
    If free_pgtables() is called with the default ceiling 0,
    free_pgd_range() (and subsequently called functions) also frees the page
    table shared between user space and kernel modules (which is normally
    handled by the ARM-specific pgd_free() function).  This patch changes
    defines the ARM USER_PGTABLES_CEILING to TASK_SIZE when CONFIG_ARM_LPAE
    is enabled.
    
    Note that the pgd_free() function already checks the presence of the
    shared pmd page allocated by pgd_alloc() and frees it, though with
    ceiling 0 this wasn't necessary.
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: <stable@vger.kernel.org>	[3.3+]
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    104ad3b3
pgtable.h 11 KB