Kirkwood issues with 3.8-rc1 - Ooops and hang on reboot
Russell King - ARM Linux
linux at arm.linux.org.uk
Sat Dec 29 19:23:01 EST 2012
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.
> Josh C
>
> On Fri, Dec 28, 2012 at 12:38 PM, Russell King - ARM Linux
> <linux at arm.linux.org.uk> wrote:
> > On Fri, Dec 28, 2012 at 06:17:49PM +0100, Andrew Lunn wrote:
> >> Hi Josh
> >>
> >> What compiler version are you using to get the opps?
> >
> > It's a section mismatch warning. Just look at the code line and compare
> > it with the disassembly. Oh, the code line indicates that the code is
> > no longer present. Why would that be?
> >
> > static struct clk __init *mvebu_clk_gating_get_src(
> > ^^^^^^
> > struct of_phandle_args *clkspec, void *data)
> > {
> > struct mvebu_gating_ctrl *ctrl = (struct mvebu_gating_ctrl *)data;
> >
> > maybe?
More information about the linux-arm-kernel
mailing list