[PATCH] powerpc/msi: fix section mismatch warning

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3939d

4 messages, 3 authors, 2015-10-21 · open the first message on its own page

[PATCH] powerpc/msi: fix section mismatch warning

From: Denis Kirjanov <hidden>
Date: 2015-10-21 05:57:37

Building with CONFIG_DEBUG_SECTION_MISMATCH
gives the following warning:

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

Signed-off-by: Denis Kirjanov <redacted>
---
 arch/powerpc/include/asm/msi_bitmap.h | 2 +-
 arch/powerpc/sysdev/msi_bitmap.c      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/msi_bitmap.h b/arch/powerpc/include/asm/msi_bitmap.h
index 1ec7125..fbd3424 100644
--- a/arch/powerpc/include/asm/msi_bitmap.h
+++ b/arch/powerpc/include/asm/msi_bitmap.h
@@ -29,7 +29,7 @@ void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq);
 
 int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp);
 
-int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
+int __init_refok msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
 		     struct device_node *of_node);
 void msi_bitmap_free(struct msi_bitmap *bmp);
 
diff --git a/arch/powerpc/sysdev/msi_bitmap.c b/arch/powerpc/sysdev/msi_bitmap.c
index 1a826f3..ed5234e 100644
--- a/arch/powerpc/sysdev/msi_bitmap.c
+++ b/arch/powerpc/sysdev/msi_bitmap.c
@@ -112,7 +112,7 @@ int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp)
 	return 0;
 }
 
-int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
+int __init_refok msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
 		     struct device_node *of_node)
 {
 	int size;
-- 
2.4.0

Re: [PATCH] powerpc/msi: fix section mismatch warning

From: Arnd Bergmann <arnd@arndb.de>
Date: 2015-10-21 06:40:08

On Wednesday 21 October 2015 08:56:44 Denis Kirjanov wrote:
Building with CONFIG_DEBUG_SECTION_MISMATCH
gives the following warning:

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

Signed-off-by: Denis Kirjanov <redacted>
A patch like this usually requires an explanation why the warning is
a false positive and why there is no way to solve it besides suppressing
the warning.

	Arnd

Re: [PATCH] powerpc/msi: fix section mismatch warning

From: Stephen Rothwell <hidden>
Date: 2015-10-21 06:42:57

Hi Denis,

On Wed, 21 Oct 2015 08:56:44 +0300 Denis Kirjanov [off-list ref] wrote:
quoted hunk
diff --git a/arch/powerpc/include/asm/msi_bitmap.h b/arch/powerpc/include/asm/msi_bitmap.h
index 1ec7125..fbd3424 100644
--- a/arch/powerpc/include/asm/msi_bitmap.h
+++ b/arch/powerpc/include/asm/msi_bitmap.h
@@ -29,7 +29,7 @@ void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq);
 
 int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp);
 
-int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
+int __init_refok msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count,
 		     struct device_node *of_node);
I am pretty sure that we don't want or need the annotation in the header file.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

Re: [PATCH] powerpc/msi: fix section mismatch warning

From: Denis Kirjanov <hidden>
Date: 2015-10-21 08:19:50

On 10/21/15, Arnd Bergmann [off-list ref] wrote:
On Wednesday 21 October 2015 08:56:44 Denis Kirjanov wrote:
quoted
Building with CONFIG_DEBUG_SECTION_MISMATCH
gives the following warning:

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

Signed-off-by: Denis Kirjanov <redacted>
A patch like this usually requires an explanation why the warning is
a false positive and why there is no way to solve it besides suppressing
the warning.
Because memory allocation in msi_bitmap_alloc use either slab allocator or
memblock boot-time allocator so that's why we need the __init_refok
for the latter case. I'll add it to the patch description
	Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help