mips: lantiq: copy built-in DTB out of init section
authorRob Herring <robh@kernel.org>
Wed, 2 Apr 2014 22:50:19 +0000 (17:50 -0500)
committerRob Herring <robh@kernel.org>
Wed, 30 Apr 2014 05:55:57 +0000 (00:55 -0500)
The existing code is buggy because built-in DTBs are in init memory.
Fix this by using the unflatten_and_copy_device_tree function.

This removes all accesses to FDT header data by the arch code.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: linux-mips@linux-mips.org
Tested-by: Grant Likely <grant.likely@linaro.org>
arch/mips/lantiq/prom.c

index 19686c5..cdea687 100644 (file)
@@ -76,18 +76,7 @@ void __init plat_mem_setup(void)
 
 void __init device_tree_init(void)
 {
-       unsigned long base, size;
-
-       if (!initial_boot_params)
-               return;
-
-       base = virt_to_phys((void *)initial_boot_params);
-       size = be32_to_cpu(initial_boot_params->totalsize);
-
-       /* Before we do anything, lets reserve the dt blob */
-       reserve_bootmem(base, size, BOOTMEM_DEFAULT);
-
-       unflatten_device_tree();
+       unflatten_and_copy_device_tree();
 }
 
 void __init prom_init(void)