Please resend this patch, thx. On Fri, May 22, 2026 at 2:14 AM George Patton <[email protected]> wrote: > > Hi Guo, > > Sorry for the noise. I noticed that the patch was submitted with my > short handle as the author / Signed-off-by name. > > If it is still possible, could you please update it from: > > hlsong <[email protected]> > > to: > > Hanlin Song <[email protected]> > > Thanks, > Hanlin > > Guo Ren <[email protected]> 于2026年5月21日周四 23:45写道: >> >> On Thu, May 21, 2026 at 7:34 PM hlsong <[email protected]> wrote: >> > >> > From: hlsong89 <[email protected]> >> > >> > The syscall trace path reloads syscall arguments from pt_regs before >> > calling the syscall handler. On C-SKY ABIv2, the 5th and 6th syscall >> > arguments are prepared as stack arguments before invoking syscallid. >> > >> > The current code adjusts sp before loading LSAVE_A4 and LSAVE_A5. Since >> > those offsets are relative to the original pt_regs base, loading them >> > after changing sp fetches the wrong slots. As a result, traced syscalls >> > that use the 5th or 6th argument may receive corrupted arguments. >> > >> > This is visible with mmap2(), which takes six arguments. A small >> > PTRACE_SYSCALL reproducer opens a file and maps one page with: >> > >> > mmap(NULL, 4096, PROT_READ | PROT_EXEC, MAP_PRIVATE, fd, 0) >> > >> > Before the fix, the traced child fails the mmap and exits with 12. >> > After the fix, the mapping succeeds and the child exits with 0. >> > >> > Fix the trace path by loading a4/a5 from pt_regs before changing sp. >> > >> > Tested on: ck860f, linux-4.19.15, C-SKY abiv2 >> > >> > Suggested-by: Guo Ren <[email protected]> >> > Signed-off-by: hlsong89 <[email protected]> >> > --- >> > Changes in v2: >> > - Use Guo Ren's suggested approach to handle the ABIv2 stack arguments. >> > - Tested with the ptrace+mmap reproducer. >> > >> > arch/csky/kernel/entry.S | 6 +++--- >> > 1 file changed, 3 insertions(+), 3 deletions(-) >> > >> > diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S >> > index c68cdcc76..3261f46f2 100644 >> > --- a/arch/csky/kernel/entry.S >> > +++ b/arch/csky/kernel/entry.S >> > @@ -93,11 +93,11 @@ csky_syscall_trace: >> > ldw a2, (sp, LSAVE_A2) >> > ldw a3, (sp, LSAVE_A3) >> > #if defined(__CSKYABIV2__) >> > - subi sp, 8 >> > ldw r9, (sp, LSAVE_A4) >> > + ldw r10, (sp, LSAVE_A5) >> > + subi sp, 8 >> > stw r9, (sp, 0x0) >> > - ldw r9, (sp, LSAVE_A5) >> > - stw r9, (sp, 0x4) >> > + stw r10, (sp, 0x4) >> > jsr syscallid /* Do system call */ >> > addi sp, 8 >> > #else >> > >> > base-commit: 5200f5f493f79f14bbdc349e402a40dfb32f23c8 >> > -- >> > 2.25.1 >> > >> Applied, thx. >> >> -- >> Best Regards >> Guo Ren
-- Best Regards Guo Ren
