Message ID | 20190617122449.457744-2-arnd@arndb.de (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | 4ea10150ea00ec4b111b441797199a177fbd05f4 |
Headers | show |
Series | [1/3] ARM: ixp4xx: don't select SERIAL_OF_PLATFORM | expand |
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 --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;
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(-)