# git rev-parse -q --verify 358e526a1648cdd773ba169da5867874ae2408e3^{commit}
358e526a1648cdd773ba169da5867874ae2408e3
already have revision, skipping fetch
# git checkout -q -f -B kisskb 358e526a1648cdd773ba169da5867874ae2408e3
# git clean -qxdf
# < git log -1
# commit 358e526a1648cdd773ba169da5867874ae2408e3
# Author: Michael Ellerman <mpe@ellerman.id.au>
# Date:   Fri May 19 21:38:06 2023 +1000
# 
#     powerpc/mm: Reinstate ARCH_FORCE_MAX_ORDER ranges
#     
#     Commit 1e8fed873e74 ("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: 1e8fed873e74 ("powerpc: drop ranges for definition of ARCH_FORCE_MAX_ORDER")
#     Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
#     Link: https://msgid.link/20230519113806.370635-1-mpe@ellerman.id.au
# < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version
# < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version
# < git log --format=%s --max-count=1 358e526a1648cdd773ba169da5867874ae2408e3
# < make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_skiroot_defconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-  skiroot_defconfig
# < make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_skiroot_defconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-  help
# make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_skiroot_defconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-  olddefconfig
# make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-fixes_skiroot_defconfig_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-  
Completed OK
# rm -rf /kisskb/build/powerpc-fixes_skiroot_defconfig_powerpc-gcc11
# Build took: 0:01:47.892707