diff mbox series

[2/3] ARM: ixp4xx: mark ixp4xx_irq_setup as __init

Message ID 20190617122449.457744-2-arnd@arndb.de
State Accepted
Commit 4ea10150ea00ec4b111b441797199a177fbd05f4
Headers show
Series [1/3] ARM: ixp4xx: don't select SERIAL_OF_PLATFORM | expand

Commit Message

Arnd Bergmann June 17, 2019, 12:24 p.m. UTC
Kbuild complains about ixp4xx_irq_setup not being __init
itself in some configurations:

WARNING: vmlinux.o(.text+0x85bae4): Section mismatch in reference from the function ixp4xx_irq_setup() to the function .init.text:set_handle_irq()
The function ixp4xx_irq_setup() references
the function __init set_handle_irq().
This is often because ixp4xx_irq_setup lacks a __init
annotation or the annotation of set_handle_irq is wrong.

I suspect it normally gets inlined, so we get no such warning,
but clang makes this obvious when the function is left out
of line.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 drivers/irqchip/irq-ixp4xx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

-- 
2.20.0

Comments

Olof Johansson June 18, 2019, 10:59 a.m. UTC | #1
On Mon, Jun 17, 2019 at 1:25 PM Arnd Bergmann <arnd@arndb.de> wrote:
>

> Kbuild complains about ixp4xx_irq_setup not being __init

> itself in some configurations:

>

> WARNING: vmlinux.o(.text+0x85bae4): Section mismatch in reference from the function ixp4xx_irq_setup() to the function .init.text:set_handle_irq()

> The function ixp4xx_irq_setup() references

> the function __init set_handle_irq().

> This is often because ixp4xx_irq_setup lacks a __init

> annotation or the annotation of set_handle_irq is wrong.

>

> I suspect it normally gets inlined, so we get no such warning,

> but clang makes this obvious when the function is left out

> of line.

>

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Applied to arm/fixes. Thanks!


-Olof
diff mbox series

Patch

diff --git a/drivers/irqchip/irq-ixp4xx.c b/drivers/irqchip/irq-ixp4xx.c
index d576809429ac..6751c35b7e1d 100644
--- a/drivers/irqchip/irq-ixp4xx.c
+++ b/drivers/irqchip/irq-ixp4xx.c
@@ -252,10 +252,10 @@  static const struct ixp4xx_irq_chunk ixp4xx_irq_chunks[] = {
  * @fwnode: Corresponding fwnode abstraction for this controller
  * @is_356: if this is an IXP43x, IXP45x or IXP46x SoC variant
  */
-static int ixp4xx_irq_setup(struct ixp4xx_irq *ixi,
-			    void __iomem *irqbase,
-			    struct fwnode_handle *fwnode,
-			    bool is_356)
+static int __init ixp4xx_irq_setup(struct ixp4xx_irq *ixi,
+				   void __iomem *irqbase,
+				   struct fwnode_handle *fwnode,
+				   bool is_356)
 {
 	int nr_irqs;