Kirkwood issues with 3.8-rc1 - Ooops and hang on reboot
Josh Coombs
josh.coombs at gmail.com
Wed Jan 2 23:50:15 EST 2013
On Sat, Dec 29, 2012 at 7:23 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Sat, Dec 29, 2012 at 06:31:37PM -0500, Josh Coombs wrote:
>> Bah, didn't send to everyone last time...
>>
>> Building with CONFIG_DEBUG_SECTION_MISMATCH enabled, the only warning
>> I get is for drivers/w1/masters/w1-gpio.o.
>>
>> WARNING: drivers/w1/masters/w1-gpio.o(.data+0x0): Section mismatch in
>> reference from the variable w1_gpio_driver to the function
>> .init.text:w1_gpio_probe()
>> The variable w1_gpio_driver references
>> the function __init w1_gpio_probe()
>> If the reference is valid then annotate the
>> variable with __init* or __refdata (see linux/init.h) or name the variable:
>> *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
>>
>> Shouldn't I be seeing a warning for
>> drivers/clk/mvebu/clk-gating-ctrl.o at this point as well?
>
> Unfortunately not. mvebu_clk_gating_get_src() is referenced by another
> __init function, which is registering the pointer to
> mvebu_clk_gating_get_src() into other code. That reference (obviously
> from the oops dump) persists past the point where the __init sections
> are freed.
>
> Hence why no section mismatch warning issued from the static tools;
> they're not infallible.
Ok, so a workaround would be to remove the __init tag so persists
properly, but it sounds like what I really should do is to find out
where that other reference is and why it's persisting to make sure
that's the right behavior in the first place?
Josh C
More information about the linux-arm-kernel
mailing list