[linux-yocto] [PATCH 60/70] powerpc: fix section mismatch warnings

Paul Butler butler.paul at gmail.com
Mon Jun 10 18:46:23 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