Messages in this thread | | | Subject | Re: [PATCH v3 1/3] powerpc: Remove MSR_PR check in interrupt_exit_{user/kernel}_prepare() | From | Christophe Leroy <> | Date | Wed, 25 Aug 2021 07:45:02 +0200 |
| |
Le 25/08/2021 à 07:27, Michael Ellerman a écrit : > Christophe Leroy <christophe.leroy@csgroup.eu> writes: >> In those hot functions that are called at every interrupt, any saved >> cycle is worth it. >> >> interrupt_exit_user_prepare() and interrupt_exit_kernel_prepare() are >> called from three places: >> - From entry_32.S >> - From interrupt_64.S >> - From interrupt_exit_user_restart() and interrupt_exit_kernel_restart() >> >> In entry_32.S, there are inambiguously called based on MSR_PR: >> >> interrupt_return: >> lwz r4,_MSR(r1) >> addi r3,r1,STACK_FRAME_OVERHEAD >> andi. r0,r4,MSR_PR >> beq .Lkernel_interrupt_return >> bl interrupt_exit_user_prepare >> ... >> .Lkernel_interrupt_return: >> bl interrupt_exit_kernel_prepare >> >> In interrupt_64.S, that's similar: >> >> interrupt_return_\srr\(): >> ld r4,_MSR(r1) >> andi. r0,r4,MSR_PR >> beq interrupt_return_\srr\()_kernel >> interrupt_return_\srr\()_user: /* make backtraces match the _kernel variant */ >> addi r3,r1,STACK_FRAME_OVERHEAD >> bl interrupt_exit_user_prepare >> ... >> interrupt_return_\srr\()_kernel: >> addi r3,r1,STACK_FRAME_OVERHEAD >> bl interrupt_exit_kernel_prepare >> >> In interrupt_exit_user_restart() and interrupt_exit_kernel_restart(), >> MSR_PR is verified respectively by BUG_ON(!user_mode(regs)) and >> BUG_ON(user_mode(regs)) prior to calling interrupt_exit_user_prepare() >> and interrupt_exit_kernel_prepare(). >> >> The verification in interrupt_exit_user_prepare() and >> interrupt_exit_kernel_prepare() are therefore useless and can be removed. >> >> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> >> Acked-by: Nicholas Piggin <npiggin@gmail.com> >> --- >> arch/powerpc/kernel/interrupt.c | 2 -- >> 1 file changed, 2 deletions(-) > > I'll pick this one up independent of the other two patches. >
Second patch should be ok as well, no ?
Christophe
| |