Bharata B Rao <bhar...@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

Reply via email to