[RFC FIX v1 1/2] powerpc: Discover radix availability before scanning the memory nodes
Michael Ellerman
mpe at ellerman.id.au
Sat Jan 6 10:28:00 AEDT 2018
Bharata B Rao <bharata at linux.vnet.ibm.com> writes:
> Currently device tree nodes for memory are scanned before the
> radix feature is discovered in mmu_early_init_devtree(). Move this
> routine ahead of scanning memory nodes so that we know if the
> guest is radix or not when scanning ibm,dynamic-reconfiguration-memory.
Sorry this doesn't work.
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> index b15bae2..079d893 100644
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -722,6 +722,8 @@ void __init early_init_devtree(void *params)
> */
> of_scan_flat_dt(early_init_dt_scan_chosen_ppc, boot_command_line);
>
> + mmu_early_init_devtree();
> +
You've moved this above parse_early_param(), but
mmu_early_init_devtree() uses disable_radix, which is an early param. So
this will break disable_radix handling.
It will probably break other things too because the ordering of this
init code is very fragile - bootstrapping is hard :)
> /* Scan memory nodes and rebuild MEMBLOCKs */
> of_scan_flat_dt(early_init_dt_scan_root, NULL);
> of_scan_flat_dt(early_init_dt_scan_memory_ppc, NULL);
> @@ -783,8 +785,6 @@ void __init early_init_devtree(void *params)
> spinning_secondaries = boot_cpu_count - 1;
> #endif
>
> - mmu_early_init_devtree();
> -
> #ifdef CONFIG_PPC_POWERNV
> /* Scan and build the list of machine check recoverable ranges */
> of_scan_flat_dt(early_init_dt_scan_recoverable_ranges, NULL);
cheers
More information about the Linuxppc-dev
mailing list