[PATCH] ARM: Avoid discarding sections that might have SMP_ON_UP fixups

Dave Martin dave.martin at linaro.org
Fri Feb 18 12:52:54 EST 2011


Hi Russell,

On Wed, Feb 16, 2011 at 4:35 PM, Dave Martin <dave.martin at linaro.org> wrote:
> 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 at lists.infradead.org
>> 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 at linaro.org>
>
> 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.

Are you still intending to merge your patch here?  I don't see it
anywhere yet, but I would like to get rid of my hack (which is rather
messy).

Cheers
---Dave



More information about the linux-arm-kernel mailing list