of/fdt: Don't clear initial_boot_params if fdt_check_header() fails
If the device tree pointer is NULL, early_init_dt_verify() fails, leaving
initial_boot_params unchanged. If the device tree pointer is non-NULL but
invalid, early_init_dt_verify() again fails but this time it also clears
initial_boot_params.
Leave initial_boot_params unchanged if the device tree pointer is invalid.
This doesn't fix a bug, but it makes the behavior more consistent and
easier to analyze.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
Signed-off-by: Grant Likely <grant.likely@linaro.org>
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 1d30b9f..53512467 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -992,15 +992,12 @@
if (!params)
return false;
+ /* check device tree validity */
+ if (fdt_check_header(params))
+ return false;
+
/* Setup flat device-tree pointer */
initial_boot_params = params;
-
- /* check device tree validity */
- if (fdt_check_header(params)) {
- initial_boot_params = NULL;
- return false;
- }
-
return true;
}