Excerpts from Christophe Leroy's message of February 9, 2021 1:10 am:
> Save r3 in regs->orig_r3 in system_call_exception()
> 
> Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>

Reviewed-by: Nicholas Piggin <npig...@gmail.com>

> ---
> v5: Removed the assembly one on SCV type system call
> ---
>  arch/powerpc/kernel/entry_64.S  | 2 --
>  arch/powerpc/kernel/interrupt.c | 2 ++
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
> index 33ddfeef4fe9..a91c2def165d 100644
> --- a/arch/powerpc/kernel/entry_64.S
> +++ b/arch/powerpc/kernel/entry_64.S
> @@ -108,7 +108,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_TM)
>       li      r11,\trapnr
>       std     r11,_TRAP(r1)
>       std     r12,_CCR(r1)
> -     std     r3,ORIG_GPR3(r1)
>       addi    r10,r1,STACK_FRAME_OVERHEAD
>       ld      r11,exception_marker@toc(r2)
>       std     r11,-16(r10)            /* "regshere" marker */
> @@ -278,7 +277,6 @@ END_BTB_FLUSH_SECTION
>       std     r10,_LINK(r1)
>       std     r11,_TRAP(r1)
>       std     r12,_CCR(r1)
> -     std     r3,ORIG_GPR3(r1)
>       addi    r10,r1,STACK_FRAME_OVERHEAD
>       ld      r11,exception_marker@toc(r2)
>       std     r11,-16(r10)            /* "regshere" marker */
> diff --git a/arch/powerpc/kernel/interrupt.c b/arch/powerpc/kernel/interrupt.c
> index 46fd195ca659..1a2dec49f811 100644
> --- a/arch/powerpc/kernel/interrupt.c
> +++ b/arch/powerpc/kernel/interrupt.c
> @@ -29,6 +29,8 @@ notrace long system_call_exception(long r3, long r4, long 
> r5,
>  {
>       syscall_fn f;
>  
> +     regs->orig_gpr3 = r3;
> +
>       if (IS_ENABLED(CONFIG_PPC_IRQ_SOFT_MASK_DEBUG))
>               BUG_ON(irq_soft_mask_return() != IRQS_ALL_DISABLED);
>  
> -- 
> 2.25.0
> 
> 

Reply via email to