On 12/11/13 19:42, Geert Uytterhoeven wrote: > The different architectures used their own (and different) declarations: > > extern struct boot_param_header __dtb_start; > extern u32 __dtb_start[]; > extern char __dtb_start[]; > > Consolidate them using the first variant in <linux/of_fdt.h>. > This requires adding a few "address of" operators on architectures where > __dtb_start was an array before. > > Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > Cc: Vineet Gupta <vgupta@xxxxxxxxxxxx> > Cc: James Hogan <james.hogan@xxxxxxxxxx> > Cc: Ralf Baechle <ralf@xxxxxxxxxxxxxx> > Cc: Jonas Bonn <jonas@xxxxxxxxxxxx> > CC: Chris Zankel <chris@xxxxxxxxxx> > Cc: Rob Herring <rob.herring@xxxxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx Acked-by: James Hogan <james.hogan@xxxxxxxxxx> Thanks James > --- > arch/arc/include/asm/sections.h | 1 - > arch/arc/kernel/setup.c | 2 +- > arch/metag/kernel/setup.c | 6 +----- > arch/mips/include/asm/mips-boards/generic.h | 4 ---- > arch/mips/lantiq/prom.h | 2 -- > arch/mips/netlogic/xlp/dt.c | 4 ++-- > arch/mips/ralink/of.c | 2 -- > arch/openrisc/kernel/setup.c | 2 +- > arch/openrisc/kernel/vmlinux.h | 2 -- > arch/xtensa/kernel/setup.c | 3 +-- > include/linux/of_fdt.h | 3 +++ > 11 files changed, 9 insertions(+), 22 deletions(-) > > diff --git a/arch/arc/include/asm/sections.h b/arch/arc/include/asm/sections.h > index 764f1e3ba752..09db952e14bd 100644 > --- a/arch/arc/include/asm/sections.h > +++ b/arch/arc/include/asm/sections.h > @@ -12,6 +12,5 @@ > #include <asm-generic/sections.h> > > extern char __arc_dccm_base[]; > -extern char __dtb_start[]; > > #endif > diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c > index 643eae4436e0..ef705d0f50f5 100644 > --- a/arch/arc/kernel/setup.c > +++ b/arch/arc/kernel/setup.c > @@ -314,7 +314,7 @@ void setup_processor(void) > void __init setup_arch(char **cmdline_p) > { > /* This also populates @boot_command_line from /bootargs */ > - machine_desc = setup_machine_fdt(__dtb_start); > + machine_desc = setup_machine_fdt(&__dtb_start); > if (!machine_desc) > panic("Embedded DT invalid\n"); > > diff --git a/arch/metag/kernel/setup.c b/arch/metag/kernel/setup.c > index 129c7cdda1ce..919c782f5479 100644 > --- a/arch/metag/kernel/setup.c > +++ b/arch/metag/kernel/setup.c > @@ -105,10 +105,6 @@ > > extern char _heap_start[]; > > -#ifdef CONFIG_METAG_BUILTIN_DTB > -extern u32 __dtb_start[]; > -#endif > - > #ifdef CONFIG_DA_CONSOLE > /* Our early channel based console driver */ > extern struct console dash_console; > @@ -251,7 +247,7 @@ void __init setup_arch(char **cmdline_p) > if (!machine_desc) { > #ifdef CONFIG_METAG_BUILTIN_DTB > /* try the embedded device tree */ > - machine_desc = setup_machine_fdt(__dtb_start); > + machine_desc = setup_machine_fdt(&__dtb_start); > if (!machine_desc) > panic("Invalid embedded device tree."); > #else > diff --git a/arch/mips/include/asm/mips-boards/generic.h b/arch/mips/include/asm/mips-boards/generic.h > index 48616816bcbc..c904c24550f6 100644 > --- a/arch/mips/include/asm/mips-boards/generic.h > +++ b/arch/mips/include/asm/mips-boards/generic.h > @@ -67,10 +67,6 @@ > > extern int mips_revision_sconid; > > -#ifdef CONFIG_OF > -extern struct boot_param_header __dtb_start; > -#endif > - > #ifdef CONFIG_PCI > extern void mips_pcibios_init(void); > #else > diff --git a/arch/mips/lantiq/prom.h b/arch/mips/lantiq/prom.h > index 8e07b5f28ef1..bfd2d58c1d69 100644 > --- a/arch/mips/lantiq/prom.h > +++ b/arch/mips/lantiq/prom.h > @@ -26,6 +26,4 @@ struct ltq_soc_info { > extern void ltq_soc_detect(struct ltq_soc_info *i); > extern void ltq_soc_init(void); > > -extern struct boot_param_header __dtb_start; > - > #endif > diff --git a/arch/mips/netlogic/xlp/dt.c b/arch/mips/netlogic/xlp/dt.c > index 8316d5454b17..87250f378386 100644 > --- a/arch/mips/netlogic/xlp/dt.c > +++ b/arch/mips/netlogic/xlp/dt.c > @@ -42,7 +42,7 @@ > #include <asm/prom.h> > > extern u32 __dtb_xlp_evp_begin[], __dtb_xlp_svp_begin[], > - __dtb_xlp_fvp_begin[], __dtb_start[]; > + __dtb_xlp_fvp_begin[]; > static void *xlp_fdt_blob; > > void __init *xlp_dt_init(void *fdtp) > @@ -66,7 +66,7 @@ void __init *xlp_dt_init(void *fdtp) > #endif > default: > /* Pick a built-in if any, and hope for the best */ > - fdtp = __dtb_start; > + fdtp = &__dtb_start; > break; > } > } > diff --git a/arch/mips/ralink/of.c b/arch/mips/ralink/of.c > index eccc5526155e..615603bd8063 100644 > --- a/arch/mips/ralink/of.c > +++ b/arch/mips/ralink/of.c > @@ -28,8 +28,6 @@ > __iomem void *rt_sysc_membase; > __iomem void *rt_memc_membase; > > -extern struct boot_param_header __dtb_start; > - > __iomem void *plat_of_remap_node(const char *node) > { > struct resource res; > diff --git a/arch/openrisc/kernel/setup.c b/arch/openrisc/kernel/setup.c > index 4fc7ccc0a2cf..c9b880d64bb8 100644 > --- a/arch/openrisc/kernel/setup.c > +++ b/arch/openrisc/kernel/setup.c > @@ -213,7 +213,7 @@ void __init or32_early_setup(void *fdt) > if (fdt) > pr_info("FDT at %p\n", fdt); > else { > - fdt = __dtb_start; > + fdt = &__dtb_start; > pr_info("Compiled-in FDT at %p\n", fdt); > } > early_init_devtree(fdt); > diff --git a/arch/openrisc/kernel/vmlinux.h b/arch/openrisc/kernel/vmlinux.h > index 70b9ce41835c..bbcdf21b0b35 100644 > --- a/arch/openrisc/kernel/vmlinux.h > +++ b/arch/openrisc/kernel/vmlinux.h > @@ -5,6 +5,4 @@ > extern char __initrd_start, __initrd_end; > #endif > > -extern u32 __dtb_start[]; > - > #endif > diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c > index 6e2b6638122d..d96cf8f3fe70 100644 > --- a/arch/xtensa/kernel/setup.c > +++ b/arch/xtensa/kernel/setup.c > @@ -68,8 +68,7 @@ extern int initrd_below_start_ok; > #endif > > #ifdef CONFIG_OF > -extern u32 __dtb_start[]; > -void *dtb_start = __dtb_start; > +void *dtb_start = &__dtb_start; > #endif > > unsigned char aux_device_present; > diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h > index 0beaee9dac1f..aabc49f3e403 100644 > --- a/include/linux/of_fdt.h > +++ b/include/linux/of_fdt.h > @@ -57,6 +57,9 @@ struct boot_param_header { > __be32 dt_struct_size; /* size of the DT structure block */ > }; > > +/* For kernels with a built-in device tree */ > +extern struct boot_param_header __dtb_start; > + > #if defined(CONFIG_OF_FLATTREE) > > struct device_node; > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html