[linux-yocto] [PATCH 86/87] powerpc: fix section mismatch warnings
Paul Butler
butler.paul at gmail.com
Mon May 27 09:56:57 PDT 2013
Fixes the following section mismatches whem building ppc44x with SMP:
WARNING: arch/powerpc/kernel/built-in.o(.text+0xc838): Section mismatch in reference from the variable start_secondary_resume to the function .devinit.text:start_secondary()
The function start_secondary_resume() references
the function __devinit start_secondary().
This is often because start_secondary_resume lacks a __devinit
annotation or the annotation of start_secondary is wrong.
WARNING: arch/powerpc/mm/built-in.o(.cpuinit.text+0x1b8): Section mismatch in reference from the function mmu_init_secondary() to the function .init.text:ppc44x_pin_tlb()
The function __cpuinit mmu_init_secondary() references
a function __init ppc44x_pin_tlb().
If ppc44x_pin_tlb is only used by mmu_init_secondary then
annotate ppc44x_pin_tlb with a matching annotation.
WARNING: arch/powerpc/sysdev/built-in.o(.text+0x99bc): Section mismatch in reference from the function apm821xx_pciex_init_port_hw() to the function .init.text:ppc4xx_pciex_wait_on_sdr.isra.7()
The function apm821xx_pciex_init_port_hw() references
the function __init ppc4xx_pciex_wait_on_sdr.isra.7().
This is often because apm821xx_pciex_init_port_hw lacks a __init
annotation or the annotation of ppc4xx_pciex_wait_on_sdr.isra.7 is wrong.
Signed-off-by: Paul Butler <paul.butler at windriver.com>
---
arch/powerpc/kernel/misc_32.S | 4 +++-
arch/powerpc/mm/44x_mmu.c | 2 +-
arch/powerpc/sysdev/ppc4xx_pci.c | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S
index 0dfc0d5..e6ebb67 100644
--- a/arch/powerpc/kernel/misc_32.S
+++ b/arch/powerpc/kernel/misc_32.S
@@ -697,7 +697,8 @@ _GLOBAL(kernel_thread)
blr
#ifdef CONFIG_SMP
-_GLOBAL(start_secondary_resume)
+__DEVINIT
+_ENTRY(start_secondary_resume)
/* Reset stack */
rlwinm r1,r1,0,0,(31-THREAD_SHIFT) /* current_thread_info() */
addi r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
@@ -705,6 +706,7 @@ _GLOBAL(start_secondary_resume)
stw r3,0(r1) /* Zero the stack frame pointer */
bl start_secondary
b .
+__FINIT
#endif /* CONFIG_SMP */
/*
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c
index 2c9441e..4c0ce90 100644
--- a/arch/powerpc/mm/44x_mmu.c
+++ b/arch/powerpc/mm/44x_mmu.c
@@ -64,7 +64,7 @@ static void __cpuinit ppc44x_update_tlb_hwater(void)
/*
* "Pins" a 256MB TLB entry in AS0 for kernel lowmem for 44x type MMU
*/
-static void __init ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
+static void __cpuinit ppc44x_pin_tlb(unsigned int virt, unsigned int phys)
{
unsigned int entry = tlb_44x_hwater--;
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c
index b6c022d..b3ccd27 100644
--- a/arch/powerpc/sysdev/ppc4xx_pci.c
+++ b/arch/powerpc/sysdev/ppc4xx_pci.c
@@ -1137,7 +1137,7 @@ static int __init apm821xx_pciex_core_init(struct device_node *np)
return 1;
}
-static int apm821xx_pciex_init_port_hw(struct ppc4xx_pciex_port *port)
+static int __init apm821xx_pciex_init_port_hw(struct ppc4xx_pciex_port *port)
{
u32 val;
--
1.8.3
More information about the linux-yocto
mailing list