x86: use FDT accessors for FDT blob header data
authorRob Herring <robh@kernel.org>
Mon, 31 Mar 2014 20:17:31 +0000 (15:17 -0500)
committerRob Herring <robh@kernel.org>
Wed, 30 Apr 2014 05:59:19 +0000 (00:59 -0500)
Remove the direct accesses to FDT header data using accessor
function instead. This makes the code more readable and makes the FDT
blob structure more opaque to the arch code. This also prepares for
removing struct boot_param_header completely.

Signed-off-by: Rob Herring <robh@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Tested-by: Grant Likely <grant.likely@linaro.org>
arch/x86/kernel/devicetree.c

index d35078ea14467d43c77ce1cfb8243590dae49fff..7db54b5d5f868996cba08c4a6a3689368a983063 100644 (file)
@@ -206,23 +206,21 @@ static void __init dtb_apic_setup(void)
 static void __init x86_flattree_get_config(void)
 {
        u32 size, map_len;
-       struct boot_param_header *dt;
+       void *dt;
 
        if (!initial_dtb)
                return;
 
-       map_len = max(PAGE_SIZE - (initial_dtb & ~PAGE_MASK),
-                       (u64)sizeof(struct boot_param_header));
+       map_len = max(PAGE_SIZE - (initial_dtb & ~PAGE_MASK), (u64)128);
 
-       dt = early_memremap(initial_dtb, map_len);
-       size = be32_to_cpu(dt->totalsize);
+       initial_boot_params = dt = early_memremap(initial_dtb, map_len);
+       size = of_get_flat_dt_size();
        if (map_len < size) {
                early_iounmap(dt, map_len);
-               dt = early_memremap(initial_dtb, size);
+               initial_boot_params = dt = early_memremap(initial_dtb, size);
                map_len = size;
        }
 
-       initial_boot_params = dt;
        unflatten_and_copy_device_tree();
        early_iounmap(dt, map_len);
 }
This page took 0.026575 seconds and 5 git commands to generate.