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
> [email protected]
> 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 <[email protected]>

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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to