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.but...@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 _______________________________________________ linux-yocto mailing list linux-yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/linux-yocto