Skip to content

Commit 358e526

Browse files
committed
powerpc/mm: Reinstate ARCH_FORCE_MAX_ORDER ranges
Commit 1e8fed8 ("powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER") removed the limits on the possible values for ARCH_FORCE_MAX_ORDER. However removing the ranges entirely causes some common work flows to break. For example building a defconfig (which uses 64K pages), changing the page size to 4K, and rebuilding used to work, because ARCH_FORCE_MAX_ORDER would be clamped to 12 by the ranges. With the ranges removed it creates a kernel that builds but crashes at boot: kernel BUG at mm/huge_memory.c:470! Oops: Exception in kernel mode, sig: 5 [#1] ... NIP hugepage_init+0x9c/0x278 LR do_one_initcall+0x80/0x320 Call Trace: do_one_initcall+0x80/0x320 kernel_init_freeable+0x304/0x3ac kernel_init+0x30/0x1a0 ret_from_kernel_user_thread+0x14/0x1c The reasoning for removing the ranges was that some of the values were too large. So take that into account and limit the maximums to 10 which is the default max, except for the 4K case which uses 12. Fixes: 1e8fed8 ("powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER") Signed-off-by: Michael Ellerman <[email protected]> Link: https://msgid.link/[email protected]
1 parent 1f7aacc commit 358e526

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

arch/powerpc/Kconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,11 +906,17 @@ config DATA_SHIFT
906906

907907
config ARCH_FORCE_MAX_ORDER
908908
int "Order of maximal physically contiguous allocations"
909+
range 7 8 if PPC64 && PPC_64K_PAGES
909910
default "8" if PPC64 && PPC_64K_PAGES
911+
range 12 12 if PPC64 && !PPC_64K_PAGES
910912
default "12" if PPC64 && !PPC_64K_PAGES
913+
range 8 10 if PPC32 && PPC_16K_PAGES
911914
default "8" if PPC32 && PPC_16K_PAGES
915+
range 6 10 if PPC32 && PPC_64K_PAGES
912916
default "6" if PPC32 && PPC_64K_PAGES
917+
range 4 10 if PPC32 && PPC_256K_PAGES
913918
default "4" if PPC32 && PPC_256K_PAGES
919+
range 10 10
914920
default "10"
915921
help
916922
The kernel page allocator limits the size of maximal physically

0 commit comments

Comments
 (0)