kernel_samsung_a53x/arch/powerpc/kernel
Christophe Leroy e97c59c35e powerpc/mm: Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL
[ Upstream commit e7e846dc6c73fbc94ae8b4ec20d05627646416f2 ]

Booting with CONFIG_DEBUG_VIRTUAL leads to following warning when
passing hugepage reservation on command line:

  Kernel command line: hugepagesz=1g hugepages=1 hugepagesz=64m hugepages=1 hugepagesz=256m hugepages=1 noreboot
  HugeTLB: allocating 1 of page size 1.00 GiB failed.  Only allocated 0 hugepages.
  ------------[ cut here ]------------
  WARNING: CPU: 0 PID: 0 at arch/powerpc/include/asm/io.h:948 __alloc_bootmem_huge_page+0xd4/0x284
  Modules linked in:
  CPU: 0 PID: 0 Comm: swapper Not tainted 6.10.0-rc6-00396-g6b0e82791bd0-dirty #936
  Hardware name: MPC8544DS e500v2 0x80210030 MPC8544 DS
  NIP:  c1020240 LR: c10201d0 CTR: 00000000
  REGS: c13fdd30 TRAP: 0700   Not tainted  (6.10.0-rc6-00396-g6b0e82791bd0-dirty)
  MSR:  00021000 <CE,ME>  CR: 44084288  XER: 20000000

  GPR00: c10201d0 c13fde20 c130b560 e8000000 e8001000 00000000 00000000 c1420000
  GPR08: 00000000 00028001 00000000 00000004 44084282 01066ac0 c0eb7c9c efffe149
  GPR16: c0fc4228 0000005f ffffffff c0eb7d0c c0eb7cc0 c0eb7ce0 ffffffff 00000000
  GPR24: c1441cec efffe153 e8001000 c14240c0 00000000 c1441d64 00000000 e8000000
  NIP [c1020240] __alloc_bootmem_huge_page+0xd4/0x284
  LR [c10201d0] __alloc_bootmem_huge_page+0x64/0x284
  Call Trace:
  [c13fde20] [c10201d0] __alloc_bootmem_huge_page+0x64/0x284 (unreliable)
  [c13fde50] [c10207b8] hugetlb_hstate_alloc_pages+0x8c/0x3e8
  [c13fdeb0] [c1021384] hugepages_setup+0x240/0x2cc
  [c13fdef0] [c1000574] unknown_bootoption+0xfc/0x280
  [c13fdf30] [c0078904] parse_args+0x200/0x4c4
  [c13fdfa0] [c1000d9c] start_kernel+0x238/0x7d0
  [c13fdff0] [c0000434] set_ivor+0x12c/0x168
  Code: 554aa33e 7c042840 3ce0c142 80a7427c 5109a016 50caa016 7c9a2378 7fdcf378 4180000c 7c052040 41810160 7c095040 <0fe00000> 38c00000 40800108 3c60c0eb
  ---[ end trace 0000000000000000 ]---

This is due to virt_addr_valid() using high_memory before it is set.

high_memory is set in mem_init() using max_low_pfn, but max_low_pfn
is available long before, it is set in mem_topology_setup(). So just
like commit daa9ada2093e ("powerpc/mm: Fix boot crash with FLATMEM")
moved the setting of max_mapnr immediately after the call to
mem_topology_setup(), the same can be done for high_memory.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/62b69c4baad067093f39e7e60df0fe27a86b8d2a.1723100702.git.christophe.leroy@csgroup.eu
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:10 +01:00
..
ptrace Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
syscalls syscalls: fix compat_sys_io_pgetevents_time64 usage 2024-11-19 14:19:34 +01:00
trace powerpc/ftrace: Fix stack teardown in ftrace_no_trace 2024-11-18 12:11:58 +01:00
vdso32 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vdso64 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
align.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
asm-offsets.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
audit.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
btext.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cacheinfo.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cacheinfo.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
compat_audit.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_6xx.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_44x.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_fsl_booke.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_pa6t.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_power.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu_setup_ppc970.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cputable.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
crash_dump.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dawr.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dbell.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dma-iommu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dma-mask.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dma-swiotlb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dt_cpu_ftrs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
early_32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
eeh.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
eeh_cache.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
eeh_driver.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
eeh_event.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
eeh_pe.c powerpc/eeh: avoid possible crash when edev->pdev changes 2024-11-19 14:19:50 +01:00
eeh_sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
entry_32.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
entry_64.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
epapr_hcalls.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
epapr_paravirt.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
exceptions-64e.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
exceptions-64s.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fadump.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
firmware.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fpu.S powerpc: Don't clobber f0/vs0 during fp|altivec register save 2024-11-18 12:11:09 +01:00
fsl_booke_entry_mapping.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_8xx.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_32.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_40x.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_44x.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_64.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_book3s_32.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_booke.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
head_fsl_booke.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hw_breakpoint.c powerpc/watchpoints: Annotate atomic context in more places 2024-11-18 22:25:35 +01:00
hw_breakpoint_constraints.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle_6xx.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle_book3e.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle_book3s.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
idle_e500.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ima_arch.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
io-workarounds.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
io.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iomap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
iommu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
irq.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
isa-bridge.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
jump_label.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kgdb.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kprobes-ftrace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kprobes.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kvm.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kvm_emul.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
l2cr_6xx.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
legacy_serial.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mce.c powerpc: Avoid nmi_enter/nmi_exit in real mode interrupt. 2024-11-23 23:20:31 +01:00
mce_power.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
misc.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
misc_32.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
misc_64.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module_32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
module_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
msi.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
note.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nvram_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
of_platform.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
optprobes.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
optprobes_head.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
paca.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci-common.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci-hotplug.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci_32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci_dn.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pci_of_scan.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pmc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ppc32.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ppc_save_regs.S powerpc: update ppc_save_regs to save current r1 in pt_regs 2024-11-18 12:12:08 +01:00
proc_powerpc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
process.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
prom.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
prom_init.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
prom_init_check.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
prom_parse.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
reloc_32.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
reloc_64.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtas-proc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtas-rtc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtas.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtas_flash.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtas_pci.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtasd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
secure_boot.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
security.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
secvar-ops.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
secvar-sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup-common.c powerpc/mm: Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL 2024-11-23 23:21:10 +01:00
setup.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup_32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
setup_64.c powerpc: Avoid nmi_enter/nmi_exit in real mode interrupt. 2024-11-23 23:20:31 +01:00
signal.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
signal.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
signal_32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
signal_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
smp-tbsync.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
smp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
stacktrace.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
suspend.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swsusp.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swsusp_32.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swsusp_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swsusp_asm64.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
swsusp_booke.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sys_ppc32.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
syscall_64.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
syscalls.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysfs.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
systbl.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
systbl_chk.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tau_6xx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
time.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tm.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
traps.c powerpc: Avoid nmi_enter/nmi_exit in real mode interrupt. 2024-11-23 23:20:31 +01:00
ucall.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
udbg.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
udbg_16550.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uprobes.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vdso.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vecemu.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vector.S powerpc: Don't clobber f0/vs0 during fp|altivec register save 2024-11-18 12:11:09 +01:00
vmlinux.lds.S Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
watchdog.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00