Message ID | 5d375bea8f519924e110842f6b0d05e83cd04470.1611585031.git.christophe.leroy@csgroup.eu (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | powerpc/32: Implement C syscall entry/exit | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | warning | Failed to apply on branch powerpc/merge (41d8cb7ece7c81e4eb897ed7ec7d3c3d72fd0af4) |
snowpatch_ozlabs/apply_patch | warning | Failed to apply on branch powerpc/next (e71ba9452f0b5b2e8dc8aa5445198cd9214a6a62) |
snowpatch_ozlabs/apply_patch | warning | Failed to apply on branch linus/master (0da0a8a0a0e1845f495431c3d8d733d2bbf9e9e5) |
snowpatch_ozlabs/apply_patch | warning | Failed to apply on branch powerpc/fixes (41131a5e54ae7ba5a2bb8d7b30d1818b3f5b13d2) |
snowpatch_ozlabs/apply_patch | warning | Failed to apply on branch linux-next (0da0a8a0a0e1845f495431c3d8d733d2bbf9e9e5) |
snowpatch_ozlabs/apply_patch | fail | Failed to apply to any branch |
Excerpts from Christophe Leroy's message of January 26, 2021 12:48 am: > Save r3 in regs->orig_r3 in system_call_exception() > > Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> > --- > arch/powerpc/kernel/entry_64.S | 1 - > arch/powerpc/kernel/syscall.c | 2 ++ > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S > index aa1af139d947..a562a4240aa6 100644 > --- a/arch/powerpc/kernel/entry_64.S > +++ b/arch/powerpc/kernel/entry_64.S > @@ -278,7 +278,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 */ This misses system_call_vectored. Thanks, Nick > diff --git a/arch/powerpc/kernel/syscall.c b/arch/powerpc/kernel/syscall.c > index cb415170b8f2..b66cfcbcb755 100644 > --- a/arch/powerpc/kernel/syscall.c > +++ b/arch/powerpc/kernel/syscall.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 > >
Le 26/01/2021 à 11:18, Nicholas Piggin a écrit : > Excerpts from Christophe Leroy's message of January 26, 2021 12:48 am: >> Save r3 in regs->orig_r3 in system_call_exception() >> >> Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> >> --- >> arch/powerpc/kernel/entry_64.S | 1 - >> arch/powerpc/kernel/syscall.c | 2 ++ >> 2 files changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S >> index aa1af139d947..a562a4240aa6 100644 >> --- a/arch/powerpc/kernel/entry_64.S >> +++ b/arch/powerpc/kernel/entry_64.S >> @@ -278,7 +278,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 */ > > This misses system_call_vectored. Oops yes, this patch was cooked before SCV where introduced. Fixes in v5. Thanks Christophe
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index aa1af139d947..a562a4240aa6 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S @@ -278,7 +278,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/syscall.c b/arch/powerpc/kernel/syscall.c index cb415170b8f2..b66cfcbcb755 100644 --- a/arch/powerpc/kernel/syscall.c +++ b/arch/powerpc/kernel/syscall.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);
Save r3 in regs->orig_r3 in system_call_exception() Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> --- arch/powerpc/kernel/entry_64.S | 1 - arch/powerpc/kernel/syscall.c | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-)