of/fdt: Don't clear initial_boot_params if fdt_check_header() fails
authorBjorn Helgaas <bhelgaas@google.com>
Wed, 29 Oct 2014 18:15:00 +0000 (12:15 -0600)
committerGrant Likely <grant.likely@linaro.org>
Tue, 4 Nov 2014 16:43:09 +0000 (16:43 +0000)
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>
drivers/of/fdt.c

index 1d30b9f964663dcedec2613e6173526ecf15984e..53512467025735b5202def3e5d16167e35faa273 100644 (file)
@@ -992,15 +992,12 @@ bool __init early_init_dt_verify(void *params)
        if (!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;
+       if (fdt_check_header(params))
                return false;
-       }
 
+       /* Setup flat device-tree pointer */
+       initial_boot_params = params;
        return true;
 }