mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
powerpc/32s: Allow mapping with BATs with DEBUG_PAGEALLOC
DEBUG_PAGEALLOC only manages RW data. Text and RO data can still be mapped with BATs. In order to map with BATs, also enforce data alignment. Set by default to 256M which is a good compromise for keeping enough BATs for also KASAN and IMMR. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/fd29c1718ee44d82115d0e835ced808eb4ccbf51.1589866984.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
a2feeb2c2e
commit
2b279c0348
@ -797,6 +797,7 @@ config DATA_SHIFT
|
||||
range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_BOOK3S_32
|
||||
range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC) && PPC_8xx
|
||||
default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
|
||||
default 18 if DEBUG_PAGEALLOC && PPC_BOOK3S_32
|
||||
default 23 if STRICT_KERNEL_RWX && PPC_8xx
|
||||
default 23 if DEBUG_PAGEALLOC && PPC_8xx && PIN_TLB_DATA
|
||||
default 19 if DEBUG_PAGEALLOC && PPC_8xx
|
||||
|
@ -170,6 +170,12 @@ unsigned long __init mmu_mapin_ram(unsigned long base, unsigned long top)
|
||||
pr_debug("RAM mapped without BATs\n");
|
||||
return base;
|
||||
}
|
||||
if (debug_pagealloc_enabled()) {
|
||||
if (base >= border)
|
||||
return base;
|
||||
if (top >= border)
|
||||
top = border;
|
||||
}
|
||||
|
||||
if (!strict_kernel_rwx_enabled() || base >= border || top <= border)
|
||||
return __mmu_mapin_ram(base, top);
|
||||
|
@ -99,10 +99,9 @@ static void __init MMU_setup(void)
|
||||
if (IS_ENABLED(CONFIG_PPC_8xx))
|
||||
return;
|
||||
|
||||
if (debug_pagealloc_enabled()) {
|
||||
__map_without_bats = 1;
|
||||
if (debug_pagealloc_enabled())
|
||||
__map_without_ltlbs = 1;
|
||||
}
|
||||
|
||||
if (strict_kernel_rwx_enabled())
|
||||
__map_without_ltlbs = 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user