On Wed, Mar 24, 2021 at 10:52:30AM -0600, Rob Herring wrote: > On Wed, Mar 24, 2021 at 9:04 AM Changbin Du <changbin.du@xxxxxxxxx> wrote: > > > > The setup_arch() would invoke unflatten_device_tree() even no > > valid fdt found. So we'd better check it first and return early. > > > > Signed-off-by: Changbin Du <changbin.du@xxxxxxxxx> > > --- > > drivers/of/fdt.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c > > index dcc1dd96911a..05d439d63bc5 100644 > > --- a/drivers/of/fdt.c > > +++ b/drivers/of/fdt.c > > @@ -1225,6 +1225,11 @@ bool __init early_init_dt_scan(void *params) > > */ > > void __init unflatten_device_tree(void) > > { > > + if (!initial_boot_params) { > > + pr_warn("No valid device tree found, continuing without\n"); > > How are you going to see this message if you have no DT? > This aligns to what unflatten_and_copy_device_tree() does. > > + return; > > And the arch is supposed to just continue on oblivious that it has no DT? > As checking the arch code(arm, riscv), I suppose so. > > + } > > + > > __unflatten_device_tree(initial_boot_params, NULL, &of_root, > > early_init_dt_alloc_memory_arch, false); > > Soon as you get here with a NULL initial_boot_params, you'll get a > backtrace and halt. > No, we have returned before. > > > > -- > > 2.30.2 > > -- Cheers, Changbin Du