Patchwork powerpc: fix section mismatch warning in free_lppacas

login
register
mail settings
Submitter Vladimir Murzin
Date Sept. 29, 2013, 12:41 p.m.
Message ID <1380458478-2324-1-git-send-email-murzin.v@gmail.com>
Download mbox | patch
Permalink /patch/278863/
State Accepted, archived
Commit 8616dff5b0e969444cc8484875ebd936956b5c0d
Delegated to: Benjamin Herrenschmidt
Headers show

Comments

Vladimir Murzin - Sept. 29, 2013, 12:41 p.m.
While cross-building for PPC64 I've got bunch of

WARNING: arch/powerpc/kernel/built-in.o(.text.unlikely+0x2d2): Section
mismatch in reference from the function .free_lppacas() to the variable
.init.data:lppaca_size The function .free_lppacas() references the variable
__initdata lppaca_size. This is often because .free_lppacas lacks a __initdata
annotation or the annotation of lppaca_size is wrong.

Fix it by using proper annotation for free_lppacas. Additionally, annotate
{allocate,new}_llpcas properly.

Signed-off-by: Vladimir Murzin <murzin.v@gmail.com>
---
 arch/powerpc/kernel/paca.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Michael Ellerman - Oct. 1, 2013, 6:18 a.m.
On Sun, Sep 29, 2013 at 02:41:18PM +0200, Vladimir Murzin wrote:
> While cross-building for PPC64 I've got bunch of
> 
> WARNING: arch/powerpc/kernel/built-in.o(.text.unlikely+0x2d2): Section
> mismatch in reference from the function .free_lppacas() to the variable
> .init.data:lppaca_size The function .free_lppacas() references the variable
> __initdata lppaca_size. This is often because .free_lppacas lacks a __initdata
> annotation or the annotation of lppaca_size is wrong.
> 
> Fix it by using proper annotation for free_lppacas. Additionally, annotate
> {allocate,new}_llpcas properly.

Yep looks good.

Acked-by: Michael Ellerman <michael@ellerman.id.au>

cheers

Patch

diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
index 3fc16e3..0620eaa 100644
--- a/arch/powerpc/kernel/paca.c
+++ b/arch/powerpc/kernel/paca.c
@@ -46,7 +46,7 @@  struct lppaca lppaca[] = {
 static struct lppaca *extra_lppacas;
 static long __initdata lppaca_size;
 
-static void allocate_lppacas(int nr_cpus, unsigned long limit)
+static void __init allocate_lppacas(int nr_cpus, unsigned long limit)
 {
 	if (nr_cpus <= NR_LPPACAS)
 		return;
@@ -57,7 +57,7 @@  static void allocate_lppacas(int nr_cpus, unsigned long limit)
 						 PAGE_SIZE, limit));
 }
 
-static struct lppaca *new_lppaca(int cpu)
+static struct lppaca * __init new_lppaca(int cpu)
 {
 	struct lppaca *lp;
 
@@ -70,7 +70,7 @@  static struct lppaca *new_lppaca(int cpu)
 	return lp;
 }
 
-static void free_lppacas(void)
+static void __init free_lppacas(void)
 {
 	long new_size = 0, nr;