Messages in this thread | | | Date | Thu, 25 Aug 2011 16:00:38 -0400 | Subject | Re: [PATCH] xics/icp_natives: add __init to marker icp_native_init() | From | Arnaud Lacombe <> |
| |
Hi,
On Thu, Aug 25, 2011 at 3:24 PM, Timur Tabi <timur@freescale.com> wrote: > Arnaud Lacombe wrote: >> This should fix the following warning: >> >> LD arch/powerpc/sysdev/xics/built-in.o >> WARNING: arch/powerpc/sysdev/xics/built-in.o(.text+0x1310): Section mismatch in >> reference from the function .icp_native_init() to the function >> .init.text:.icp_native_init_one_node() >> The function .icp_native_init() references >> the function __init .icp_native_init_one_node(). >> This is often because .icp_native_init lacks a __init >> annotation or the annotation of .icp_native_init_one_node is wrong. >> >> icp_native_init() is only referenced in `arch/powerpc/sysdev/xics/xics-common.c' >> by xics_init() which is itself marked with __init. >> >> = not built-tested = >> >> Reported-by: Timur Tabi <timur@freescale.com> >> Signed-off-by: Arnaud Lacombe <lacombar@gmail.com> > > Acked-by: Timur Tabi <timur@freescale.com> > > This warning still appears, though: > > WARNING: arch/powerpc/sysdev/built-in.o(.text+0xf6b8): Section mismatch in > reference from the function .ics_rtas_init() to the function > .init.text:.xics_register_ics() > The function .ics_rtas_init() references > the function __init .xics_register_ics(). > This is often because .ics_rtas_init lacks a __init > annotation or the annotation of .xics_register_ics is wrong. > he, chain-reaction :)
> To fix this warning, you'll also need: > > diff --git a/arch/powerpc/sysdev/xics/ics-rtas.c b/arch/powerpc/sysdev/xics/ics- > index c782f85..a125721 100644 > --- a/arch/powerpc/sysdev/xics/ics-rtas.c > +++ b/arch/powerpc/sysdev/xics/ics-rtas.c > @@ -213,7 +213,7 @@ static int ics_rtas_host_match(struct ics *ics, struct devic > return !of_device_is_compatible(node, "chrp,iic"); > } > > -int ics_rtas_init(void) > +int __init ics_rtas_init(void) > { > ibm_get_xive = rtas_token("ibm,get-xive"); > ibm_set_xive = rtas_token("ibm,set-xive"); > > > However, now we get another similar warning: > > WARNING: drivers/built-in.o(.text+0x259c484): Section mismatch in reference from > the function .tc3589x_keypad_open() to the function > .devinit.text:.tc3589x_keypad_init_key_hardware() > The function .tc3589x_keypad_open() references > the function __devinit .tc3589x_keypad_init_key_hardware(). > This is often because .tc3589x_keypad_open lacks a __devinit > annotation or the annotation of .tc3589x_keypad_init_key_hardware is wrong. > > I'm not sure what to do at this point, because I have a suspicion that adding > __devinit to tc3589x_keypad_open() is wrong. > tc3589x_keypad_init_key_hardware() annotation looks plain wrong.
- Arnaud
> -- > Timur Tabi > Linux kernel developer at Freescale > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |