Hi, On Fri, Feb 11, 2011 at 04:32:47PM +0000, Russell King - ARM Linux wrote: [...] > diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S > index 45b5651..343d29f 100644 > --- a/arch/arm/kernel/vmlinux.lds.S > +++ b/arch/arm/kernel/vmlinux.lds.S > @@ -21,6 +21,12 @@ > #define ARM_CPU_KEEP(x) > #endif > > +#if defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK) > +#define ARM_EXIT_KEEP(x) x > +#else > +#define ARM_EXIT_KEEP(x) > +#endif > + > OUTPUT_ARCH(arm) > ENTRY(stext) > > @@ -43,6 +49,7 @@ SECTIONS > _sinittext = .; > HEAD_TEXT > INIT_TEXT > + ARM_EXIT_KEEP(EXIT_TEXT) > _einittext = .; > ARM_CPU_DISCARD(PROC_INFO) > __arch_info_begin = .; > @@ -71,6 +78,7 @@ SECTIONS > #ifndef CONFIG_XIP_KERNEL > __init_begin = _stext; > INIT_DATA > + ARM_EXIT_KEEP(EXIT_DATA) > #endif > } > > @@ -166,6 +174,7 @@ SECTIONS > . = ALIGN(PAGE_SIZE); > __init_begin = .; > INIT_DATA > + ARM_EXIT_KEEP(EXIT_DATA) > . = ALIGN(PAGE_SIZE); > __init_end = .; > #endif > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel This works for me in a case known to fail without the patch. Tested-by: Dave Martin <dave.martin@xxxxxxxxxx> I still don't quite understand the intricacies of how vmlinux is laid out, but the patch looks sensible. Do you need anything more from me on this? If not, I will throw away my patch and replace it with yours. Cheers ---Dave -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html