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