On Monday, 17 October 2016 11:05:09 BST Matt Redfearn wrote: > The KASLR code requires that the plat_get_fdt() function return the > address of the device tree, and it must be available early in the boot, > before prom_init() is called. Move the code determining the address of > the device tree into plat_get_fdt, and call that from prom_init(). > > The fdt pointer will be set up by plat_get_fdt() called from > relocate_kernel initially and once the relocated kernel has started, > prom_init() will use it again to determine the address in the relocated > image. > > Fixes: eed0eabd12ef > Signed-off-by: Matt Redfearn <matt.redfearn@xxxxxxxxxx> > --- > > arch/mips/generic/init.c | 16 ++++++++++------ > 1 file changed, 10 insertions(+), 6 deletions(-) > > diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c > index 0ea73e845440..d493ccbf274a 100644 > --- a/arch/mips/generic/init.c > +++ b/arch/mips/generic/init.c > @@ -30,9 +30,19 @@ static __initdata const void *mach_match_data; > > void __init prom_init(void) > { > + plat_get_fdt(); > + BUG_ON(!fdt); > +} > + > +void __init *plat_get_fdt(void) > +{ > const struct mips_machine *check_mach; > const struct of_device_id *match; > > + if (fdt) > + /* Already set up */ > + return (void *)fdt; > + > if ((fw_arg0 == -2) && !fdt_check_header((void *)fw_arg1)) { > /* > * We booted using the UHI boot protocol, so we have been > @@ -75,12 +85,6 @@ void __init prom_init(void) > /* Retrieve the machine's FDT */ > fdt = mach->fdt; > } > - > - BUG_ON(!fdt); > -} > - > -void __init *plat_get_fdt(void) > -{ > return (void *)fdt; > } Hi Matt, Apart from the Fixes tag niggle James mentioned (which checkpatch ought to pick up on): Reviewed-by: Paul Burton <paul.burton@xxxxxxxxxx> Thanks, Paul
Attachment:
signature.asc
Description: This is a digitally signed message part.