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"); + return; + } + __unflatten_device_tree(initial_boot_params, NULL, &of_root, early_init_dt_alloc_memory_arch, false); -- 2.30.2