On Tue, 2009-11-24 at 01:19 -0700, Grant Likely wrote: > > -static int __init early_init_dt_scan_cpus(unsigned long node, > - const char *uname, int depth, > - void *data) > +int __init early_init_dt_scan_cpus(unsigned long node, const char *uname, > + int depth, void *data) > { So now you make this one non-static as well with little hope of making it static ever again > static int logical_cpuid; > char *type = of_get_flat_dt_prop(node, "device_type", NULL); > @@ -113,8 +112,8 @@ void __init early_init_dt_scan_chosen_arch(unsigned long node) > /* No Microblaze specific code here */ > } > > -static int __init early_init_dt_scan_memory(unsigned long node, > - const char *uname, int depth, void *data) > +int __init early_init_dt_scan_memory(unsigned long node, const char *uname, > + int depth, void *data) > { And this one > char *type = of_get_flat_dt_prop(node, "device_type", NULL); > u32 *reg, *endp; > @@ -201,7 +200,7 @@ static inline unsigned long phyp_dump_calculate_reserve_size(void) > * without reserving anything. The memory in case of dump being > * active is freed when the dump is collected (by userland tools). > */ > -static void __init phyp_dump_reserve_mem(void) > +void __init phyp_dump_reserve_mem(void) > { And this one... > /** > + * early_init_move_devtree - move tree to an unused area, if needed. > + * > + * The device tree may be allocated beyond our memory limit, or inside the > + * crash kernel region for kdump. If so, move it out of the way. > + */ > +#if defined(CONFIG_PPC) > +static void __init early_init_move_devtree(void) And you still end up with an ifdef mess in the common code ... Would it be possible instead to have one common early_init_devtree() that calls into the "common" ones (which you can then make static again, inside the common code) and then calls one arch_early_init_devtree() which regroups the arch specific ones ? Or there's too many ordering issues ? Another option then is to call from that early_init_devtree() something like: arch_early_init_dt_mem() arch_early_init_dt_cpu() arch_early_init_move_devtree() etc... in the right spots in the common code and have the archs who don't do anything there just have them as empty inlines. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html