ARM: 6953/1: DT: don't try to access physical address zero
authorNicolas Pitre <nicolas.pitre@linaro.org>
Thu, 9 Jun 2011 03:58:36 +0000 (04:58 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 9 Jun 2011 09:15:06 +0000 (10:15 +0100)
If the DT physical address is zero, this is equivalent to no DT.
Especially when the actual RAM physical address is not located at zero,
the result of phys_to_virt() would point to la-la-land and crash the
kernel, which crash is completely silent this early during boot.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/devtree.c

index a701e42..0cdd7b4 100644 (file)
@@ -76,6 +76,9 @@ struct machine_desc * __init setup_machine_fdt(unsigned int dt_phys)
        unsigned long dt_root;
        const char *model;
 
+       if (!dt_phys)
+               return NULL;
+
        devtree = phys_to_virt(dt_phys);
 
        /* check device tree validity */