On Thu, Mar 25, 2021 at 10:00 AM Changbin Du <changbin.du@xxxxxxxxx> wrote: > > 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. Humm, then we should have a single check that covers both cases. Or we should remove that one. > > > > + 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. I mean without your addition we'll get here with a NULL. Rob