diff options
author | Alex Belits <[email protected]> | 2017-02-16 17:27:34 -0800 |
---|---|---|
committer | Ralf Baechle <[email protected]> | 2017-04-10 11:56:06 +0200 |
commit | 3377e227af441aff710726437adc20efc359fd9c (patch) | |
tree | d05610ba07eca74f783b42fbbd5110b7876d8c9b /arch/mips/mm/init.c | |
parent | dfa32261fa0ed1821c7d5dbb9e93eddfe311a0d9 (diff) |
MIPS: Add 48-bit VA space (and 4-level page tables) for 4K pages.
Some users must have 4K pages while needing a 48-bit VA space size.
The cleanest way do do this is to go to a 4-level page table for this
case. Each page table level using order-0 pages adds 9 bits to the
VA size (at 4K pages, so for four levels we get 9 * 4 + 12 == 48-bits.
For the 4K page size case only we add support functions for the PUD
level of the page table tree, also the TLB exception handlers get an
extra level of tree walk.
[[email protected]: Forward port to v4.10.]
[[email protected]: Forward port to v4.11.]
Signed-off-by: Alex Belits <[email protected]>
Signed-off-by: David Daney <[email protected]>
Cc: James Hogan <[email protected]>
Cc: Alex Belits <[email protected]>
Cc: [email protected]
Cc: [email protected]
Patchwork: https://patchwork.linux-mips.org/patch/15312/
Signed-off-by: Ralf Baechle <[email protected]>
Diffstat (limited to 'arch/mips/mm/init.c')
-rw-r--r-- | arch/mips/mm/init.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index aa75849c36bc..37aa931501bf 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -537,6 +537,9 @@ unsigned long pgd_current[NR_CPUS]; * it in the linker script. */ pgd_t swapper_pg_dir[_PTRS_PER_PGD] __section(.bss..swapper_pg_dir); +#ifndef __PAGETABLE_PUD_FOLDED +pud_t invalid_pud_table[PTRS_PER_PUD] __page_aligned_bss; +#endif #ifndef __PAGETABLE_PMD_FOLDED pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned_bss; EXPORT_SYMBOL_GPL(invalid_pmd_table); |