powerpc/32: implement fast entry for syscalls on BOOKE
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. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Esse commit está contido em:

commit de
Michael Ellerman

pai
b86fb88855
commit
1a4b739bbb
@@ -342,7 +342,6 @@ stack_ovf:
|
||||
SYNC
|
||||
RFI
|
||||
|
||||
#ifndef CONFIG_BOOKE /* to be removed once BOOKE uses fast syscall entry */
|
||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||
trace_syscall_entry_irq_off:
|
||||
/*
|
||||
@@ -369,7 +368,6 @@ transfer_to_syscall:
|
||||
andi. r12,r9,MSR_EE
|
||||
beq- trace_syscall_entry_irq_off
|
||||
#endif /* CONFIG_TRACE_IRQFLAGS */
|
||||
#endif /* !CONFIG_BOOKE */
|
||||
|
||||
/*
|
||||
* Handle a system call.
|
||||
@@ -382,11 +380,6 @@ _GLOBAL(DoSyscall)
|
||||
stw r3,ORIG_GPR3(r1)
|
||||
li r12,0
|
||||
stw r12,RESULT(r1)
|
||||
#ifdef CONFIG_BOOKE /* to be removed once BOOKE uses fast syscall entry */
|
||||
lwz r11,_CCR(r1) /* Clear SO bit in CR */
|
||||
rlwinm r11,r11,0,4,2
|
||||
stw r11,_CCR(r1)
|
||||
#endif
|
||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||
/* Make sure interrupts are enabled */
|
||||
mfmsr r11
|
||||
|
Referência em uma nova issue
Block a user