Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Fix section mismatch warning in free_lppacas

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>
Acked-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

authored by

Vladimir Murzin and committed by
Benjamin Herrenschmidt
8616dff5 0edfdd10

+3 -3
+3 -3
arch/powerpc/kernel/paca.c
··· 46 46 static struct lppaca *extra_lppacas; 47 47 static long __initdata lppaca_size; 48 48 49 - static void allocate_lppacas(int nr_cpus, unsigned long limit) 49 + static void __init allocate_lppacas(int nr_cpus, unsigned long limit) 50 50 { 51 51 if (nr_cpus <= NR_LPPACAS) 52 52 return; ··· 57 57 PAGE_SIZE, limit)); 58 58 } 59 59 60 - static struct lppaca *new_lppaca(int cpu) 60 + static struct lppaca * __init new_lppaca(int cpu) 61 61 { 62 62 struct lppaca *lp; 63 63 ··· 70 70 return lp; 71 71 } 72 72 73 - static void free_lppacas(void) 73 + static void __init free_lppacas(void) 74 74 { 75 75 long new_size = 0, nr; 76 76