Re: [PATCH v3 14/16] powerpc/32: implement fast entry for syscalls on BOOKE
From: Christophe Leroy <hidden>
Date: 2019-06-04 16:59:55
Also in:
lkml
Paul, Le 23/05/2019 à 08:14, Paul Mackerras a écrit :
On Tue, Apr 30, 2019 at 12:39:03PM +0000, Christophe Leroy wrote:quoted
This patch implements a fast entry for syscalls. Syscalls don't have to preserve non volatile registers except LR. This patch then implement a fast entry for syscalls, where volatile registers get clobbered. As this entry is dedicated to syscall it always sets MSR_EE and warns in case MSR_EE was previously off It also assumes that the call is always from user, system calls are unexpected from kernel.This is now upstream as commit 1a4b739bbb4f. On the e500mc test config that I use, I'm getting this build failure: 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
Does my patch (https://patchwork.ozlabs.org/patch/1103909/) fixes the issue for you ? Thanks Christophe
quoted
+.macro SYSCALL_ENTRY trapno intno + mfspr r10, SPRN_SPRG_THREAD +#ifdef CONFIG_KVM_BOOKE_HV +BEGIN_FTR_SECTION + mtspr SPRN_SPRG_WSCRATCH0, r10 + stw r11, THREAD_NORMSAVE(0)(r10) + stw r13, THREAD_NORMSAVE(2)(r10) + mfcr r13 /* save CR in r13 for now */ + mfspr r11, SPRN_SRR1 + mtocrf 0x80, r11 /* check MSR[GS] without clobbering reg */ + bf 3, 1975f + b kvmppc_handler_BOOKE_INTERRUPT_\intno\()_SPRN_SRR1It seems to me that the "_SPRN_SRR1" on the end of this line isn't meant to be there... However, it still fails to link with that removed. Paul.