mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
powerpc/8xx: Reduce default size of module/execmem area
8xx boards don't have much memory, the two I know have respectively 32Mbytes and 128Mbytes, so there is no point in having 256 Mbytes of memory for module text. Reduce it to 32Mbytes for 8xx, that's more than enough. Nevertheless, make it a configurable value so that it can be customised if needed. Also add a build verification for overlap of module execmem space with user PMD. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://msgid.link/8db23b61e33a0d1913d814f94bfe71ba7ac78b0f.1724173828.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
bcf77a70c4
commit
c5eec4df25
|
@ -1271,6 +1271,24 @@ config TASK_SIZE
|
|||
default "0x80000000" if PPC_8xx
|
||||
default "0xb0000000" if PPC_BOOK3S_32
|
||||
default "0xc0000000"
|
||||
|
||||
config MODULES_SIZE_BOOL
|
||||
bool "Set custom size for modules/execmem area"
|
||||
depends on EXECMEM && ADVANCED_OPTIONS
|
||||
depends on PPC_8xx
|
||||
help
|
||||
This option allows you to set the size of kernel virtual address
|
||||
space dedicated for modules/execmem.
|
||||
For the time being it is only for 8xx.
|
||||
|
||||
Say N here unless you know what you are doing.
|
||||
|
||||
config MODULES_SIZE
|
||||
int "Size of modules/execmem area (In Mbytes)" if MODULES_SIZE_BOOL
|
||||
range 1 256 if EXECMEM
|
||||
default 32 if EXECMEM && PPC_8xx
|
||||
default 0
|
||||
|
||||
endmenu
|
||||
|
||||
if PPC64
|
||||
|
|
|
@ -170,8 +170,9 @@
|
|||
|
||||
#define mmu_linear_psize MMU_PAGE_8M
|
||||
|
||||
#define MODULES_VADDR (PAGE_OFFSET - SZ_256M)
|
||||
#define MODULES_END PAGE_OFFSET
|
||||
#define MODULES_SIZE (CONFIG_MODULES_SIZE * SZ_1M)
|
||||
#define MODULES_VADDR (MODULES_END - MODULES_SIZE)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
|
|
|
@ -207,6 +207,8 @@ void __init setup_initial_memory_limit(phys_addr_t first_memblock_base,
|
|||
|
||||
/* 8xx can only access 32MB at the moment */
|
||||
memblock_set_current_limit(min_t(u64, first_memblock_size, SZ_32M));
|
||||
|
||||
BUILD_BUG_ON(ALIGN_DOWN(MODULES_VADDR, PGDIR_SIZE) < TASK_SIZE);
|
||||
}
|
||||
|
||||
int pud_clear_huge(pud_t *pud)
|
||||
|
|
Loading…
Reference in New Issue
Block a user