Thread (3 messages) 3 messages, 2 authors, 2011-08-25

Re: [PATCH] xics/icp_natives: add __init to marker icp_native_init()

From: Arnaud Lacombe <hidden>
Date: 2011-08-25 20:00:40
Also in: lkml

Hi,

On Thu, Aug 25, 2011 at 3:24 PM, Timur Tabi [off-list ref] wrote:
Arnaud Lacombe wrote:
quoted
This should fix the following warning:

=A0LD =A0 =A0 =A0arch/powerpc/sysdev/xics/built-in.o
WARNING: arch/powerpc/sysdev/xics/built-in.o(.text+0x1310): Section mism=
atch in
quoted
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-c=
ommon.c'
quoted
by xics_init() which is itself marked with __init.

=3D not built-tested =3D

Reported-by: Timur Tabi <redacted>
Signed-off-by: Arnaud Lacombe <redacted>
Acked-by: Timur Tabi <redacted>

This warning still appears, though:

WARNING: arch/powerpc/sysdev/built-in.o(.text+0xf6b8): Section mismatch i=
n
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 :)
quoted hunk ↗ jump to hunk
To fix this warning, you'll also need:
diff --git a/arch/powerpc/sysdev/xics/ics-rtas.c b/arch/powerpc/sysdev/xi=
cs/ics-
quoted hunk ↗ jump to hunk
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, struc=
t devic
=A0 =A0 =A0 =A0return !of_device_is_compatible(node, "chrp,iic");
=A0}

-int ics_rtas_init(void)
+int __init ics_rtas_init(void)
=A0{
=A0 =A0 =A0 =A0ibm_get_xive =3D rtas_token("ibm,get-xive");
=A0 =A0 =A0 =A0ibm_set_xive =3D rtas_token("ibm,set-xive");


However, now we get another similar warning:

WARNING: drivers/built-in.o(.text+0x259c484): Section mismatch in referen=
ce 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 wron=
g.
I'm not sure what to do at this point, because I have a suspicion that ad=
ding
__devinit to tc3589x_keypad_open() is wrong.
tc3589x_keypad_init_key_hardware() annotation looks plain wrong.

 - Arnaud
--
Timur Tabi
Linux kernel developer at Freescale
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help