Subject: Re: [PATCH] powerpc: Remove modpost warning with start_secondary (Modified by Milton Miller)

From: Milton Miller <[email-masked]>
Date: Thu, 4 Dec 2008 11:16:22 -0600

[oops forgot to cc the list]

Nathan Lynch wrote at 2008-12-03 17:43:40:
> Kumar Gala wrote:
>> On Dec 2, 2008, at 11:31 PM, Nathan Lynch wrote:
>>> Kumar Gala wrote:
>>>> WARNING: vmlinux.o(.text+0x2aa): Section mismatch in reference from
>>>> the variable __secondary_start to the function
>>>> .devinit.text:start_secondary()
>>>> The function __secondary_start() references
>>>> the function __devinit start_secondary().
>>>>
>>>> start_secondary gets called by __secondary_start which is in asm
>>>> code so its
>>>> not marked as __devinit.  Its easier to just remove the __devinit
>>>> from
>>>> start_secondary than try and deal with __secondary_start.
>>>
>>> Which just gets another mismatch warning here:
>>>
>>> WARNING: arch/powerpc/kernel/built-in.o(.text+0x23cc4): Section
>>> mismatch in reference from the function .start_secondary() to the
>>> function .devinit.text:.smp_store_cpu_info()
>>> The function .start_secondary() references
>>> the function __devinit .smp_store_cpu_info().
>>> This is often because .start_secondary lacks a __devinit
>>> annotation or the annotation of .smp_store_cpu_info is wrong.

And other architectures want this to be cpuinit, the patch is held up 
because of powerpc:

http://ozlabs.org/pipermail/linuxppc-dev/2008-November/064897.html

>>> Isn't there a better way to address this?  It doesn't seem right to
>>> increase the kernel's memory usage to get rid of a modpost warning.

I agree.  And its easy: move the asm code to the right section with the 
nifty macros in linux/init.h.

We can use the whitelist of .text.head and also use use cpuinit.

I had a patch last July that went in this direction, but it was tangled 
with the relocatable kernel patches and badly timed.

http://ozlabs.org/pipermail/linuxppc-dev/2008-July/059717.html

hmm, I don't see 1/3 that cleaned up the function entry macro repition.

I'll try to revive them and bring them up to the current tree.

>>
>> Fair.. what defconfig did you build?
>
> Try ppc64_defconfig with HOTPLUG_CPU=n.

milton