In 2.6.35-rc1, __cpu_notify access cpu_chain, which shouldn't be
marked __cpuinitdata (via section mismatch warning).
Signed-off-by: Daniel J Blueman <[email protected]>
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 8b92539..97d1b42 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -34,7 +34,7 @@ void cpu_maps_update_done(void)
mutex_unlock(&cpu_add_remove_lock);
}
-static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);
+static RAW_NOTIFIER_HEAD(cpu_chain);
/* If set, cpu_up and cpu_down will return -EBUSY and do nothing.
* Should always be manipulated under cpu_add_remove_lock
--
Daniel J Blueman
On Tue, 1 Jun 2010, Daniel J Blueman wrote:
>
> In 2.6.35-rc1, __cpu_notify access cpu_chain, which shouldn't be
> marked __cpuinitdata (via section mismatch warning).
Hmm. Does this section mismatch go away if you instead mark cpu_notify(),
__cpu_notify() and cpu_notify_nofail as "inline"? Or alternatively, maybe
they should all be marked as __ref?
I think the section mismatch started happening when those wrapper
functions were created, but all the callers seem to be __ref or __cpuinit.
Or maybe we should just make that variable be non-cpuinitdata like your
patch suggests.
Does anybody have strong preferences (patch appended for reference)?
Linus
---
> Signed-off-by: Daniel J Blueman <[email protected]>
>
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 8b92539..97d1b42 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -34,7 +34,7 @@ void cpu_maps_update_done(void)
> mutex_unlock(&cpu_add_remove_lock);
> }
>
> -static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);
> +static RAW_NOTIFIER_HEAD(cpu_chain);
>
> /* If set, cpu_up and cpu_down will return -EBUSY and do nothing.
> * Should always be manipulated under cpu_add_remove_lock
> --
> Daniel J Blueman
>
On Tue, 1 Jun 2010, Linus Torvalds wrote:
>
> Does anybody have strong preferences (patch appended for reference)?
Never mind. I'll just apply the patch. If somebody _does_ have strong
preferences, holler with a new patch that updates it to inline or
whatever..
Linus
Hi Linus,
On Tue, Jun 1, 2010 at 4:49 PM, Linus Torvalds
<[email protected]> wrote:
>
>
> On Tue, 1 Jun 2010, Daniel J Blueman wrote:
>>
>> In 2.6.35-rc1, __cpu_notify access cpu_chain, which shouldn't be
>> marked __cpuinitdata (via section mismatch warning).
>
> Hmm. Does this section mismatch go away if you instead mark cpu_notify(),
> __cpu_notify() and cpu_notify_nofail as "inline"? Or alternatively, maybe
> they should all be marked as __ref?
Indeed the inline and __ref approaches quench the warning too.
> I think the section mismatch started happening when those wrapper
> functions were created, but all the callers seem to be __ref or __cpuinit.
>
> Or maybe we should just make that variable be non-cpuinitdata like your
> patch suggests.
At least this is the minimal change until a good reason comes along.
Thanks,
Daniel
> Does anybody have strong preferences (patch appended for reference)?
>
> ? ? ? ? ? ? ? ?Linus
> ---
>> Signed-off-by: Daniel J Blueman <[email protected]>
>>
>> diff --git a/kernel/cpu.c b/kernel/cpu.c
>> index 8b92539..97d1b42 100644
>> --- a/kernel/cpu.c
>> +++ b/kernel/cpu.c
>> @@ -34,7 +34,7 @@ void cpu_maps_update_done(void)
>> ? ? ? mutex_unlock(&cpu_add_remove_lock);
>> ?}
>>
>> -static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);
>> +static RAW_NOTIFIER_HEAD(cpu_chain);
>>
>> ?/* If set, cpu_up and cpu_down will return -EBUSY and do nothing.
>> ? * Should always be manipulated under cpu_add_remove_lock
--
Daniel J Blueman