powerpc/32: fix build failure on book3e with KVM
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 23 May 2019 08:39:27 +0000 (08:39 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 15 Jun 2019 14:03:38 +0000 (00:03 +1000)
Build failure was introduced by the commit identified below,
due to missed macro expension leading to wrong called function's name.

arch/powerpc/kernel/head_fsl_booke.o: In function `SystemCall':
arch/powerpc/kernel/head_fsl_booke.S:416: undefined reference to `kvmppc_handler_BOOKE_INTERRUPT_SYSCALL_SPRN_SRR1'
Makefile:1052: recipe for target 'vmlinux' failed

The called function should be kvmppc_handler_8_0x01B(). This patch fixes it.

Reported-by: Paul Mackerras <paulus@ozlabs.org>
Fixes: 1a4b739bbb4f ("powerpc/32: implement fast entry for syscalls on BOOKE")
Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/head_booke.h
arch/powerpc/kernel/head_fsl_booke.S

index 9f9e0d109d7d1768e2cee54e5627b70eb4d734ee..2ae635df9026d945a24145f6d5dd8c46d92fca19 100644 (file)
@@ -83,7 +83,7 @@ END_BTB_FLUSH_SECTION
        SAVE_4GPRS(3, r11);                                                  \
        SAVE_2GPRS(7, r11)
 
-.macro SYSCALL_ENTRY trapno intno
+.macro SYSCALL_ENTRY trapno intno srr1
        mfspr   r10, SPRN_SPRG_THREAD
 #ifdef CONFIG_KVM_BOOKE_HV
 BEGIN_FTR_SECTION
@@ -94,7 +94,7 @@ BEGIN_FTR_SECTION
        mfspr   r11, SPRN_SRR1
        mtocrf  0x80, r11       /* check MSR[GS] without clobbering reg */
        bf      3, 1975f
-       b       kvmppc_handler_BOOKE_INTERRUPT_\intno\()_SPRN_SRR1
+       b       kvmppc_handler_\intno\()_\srr1
 1975:
        mr      r12, r13
        lwz     r13, THREAD_NORMSAVE(2)(r10)
index 6621f230cc37beb52bc79d665a844a0f531fe611..2b39f42c36763f9087b5fb5166a6fbd64c1ff5d2 100644 (file)
@@ -413,7 +413,7 @@ interrupt_base:
 
        /* System Call Interrupt */
        START_EXCEPTION(SystemCall)
-       SYSCALL_ENTRY   0xc00 SYSCALL
+       SYSCALL_ENTRY   0xc00 BOOKE_INTERRUPT_SYSCALL SPRN_SRR1
 
        /* Auxiliary Processor Unavailable Interrupt */
        EXCEPTION(0x2900, AP_UNAVAIL, AuxillaryProcessorUnavailable, \