• Michael Ellerman's avatar
    powerpc/mm: Reinstate ARCH_FORCE_MAX_ORDER ranges · 358e526a
    Michael Ellerman authored
    Commit 1e8fed87 ("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: 1e8fed87 ("powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER")
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20230519113806.370635-1-mpe@ellerman.id.au
    358e526a
Kconfig 40.2 KB