[PATCH v2 0/2] microblaze: fix signal-frame handling for NPTL

Ramin Moussavi posted 2 patches 2 days, 21 hours ago
arch/microblaze/kernel/signal.c             | 8 ++++++++
arch/microblaze/kernel/syscalls/syscall.tbl | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
[PATCH v2 0/2] microblaze: fix signal-frame handling for NPTL
Posted by Ramin Moussavi 2 days, 21 hours ago
Two independent fixes to the microblaze signal-delivery path, both found
while bringing the uClibc-ng NPTL test suite up on microblazeel under
qemu-system (petalogix-s3adsp1800).

Patch 1 wires up sigaltstack(), which is currently routed to
sys_ni_syscall even though the signal code fully supports an alternate
stack - microblaze is the only architecture leaving it unimplemented.

Patch 2 reserves the ABI argument-home area at the top of the signal
frame.  The MicroBlaze calling convention reserves [r1+0] for the return
address and lets a handler store its incoming register arguments r5..r10
into [r1+4]..[r1+24]; since r1 points at struct rt_sigframe on entry,
those stores land in siginfo/ucontext and corrupt the signal state.  A
seven-word leading gap moves them into scratch space.

Both were tested with the uClibc-ng NPTL tests; the affected tests
(tst-cancel20/21, tst-cancelx20/21, tst-signal6, tst-timer4/5,
tst-mqueue5) pass.  checkpatch --strict is clean and both apply to
current linux-next.

Changes since v1 [1]:
 - Patch 2: shrink the gap from eight to seven words.  Michal pointed
   out that the home area is exactly seven words (r15 at r1+0, r5..r10
   at r1+4..r1+24); the eighth word was never written by the ABI.
   Retested on qemu - tst-timer4/5, tst-mqueue5, tst-signal6 still pass.
 - Patch 2: fix the offset range in the commit message and the in-code
   comment ([r1+4]..[r1+24], not [r1+28]).
 - Patch 1: unchanged.

[1] https://lore.kernel.org/all/cover.1780587199.git.lordrasmus@gmail.com/

Ramin Moussavi (2):
  microblaze: wire up sigaltstack
  microblaze: reserve the ABI argument-home area in the signal frame

 arch/microblaze/kernel/signal.c             | 8 ++++++++
 arch/microblaze/kernel/syscalls/syscall.tbl | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

-- 
2.53.0
Re: [PATCH v2 0/2] microblaze: fix signal-frame handling for NPTL
Posted by Michal Simek 2 days, 20 hours ago

On 6/5/26 10:20, Ramin Moussavi wrote:
> Two independent fixes to the microblaze signal-delivery path, both found
> while bringing the uClibc-ng NPTL test suite up on microblazeel under
> qemu-system (petalogix-s3adsp1800).
> 
> Patch 1 wires up sigaltstack(), which is currently routed to
> sys_ni_syscall even though the signal code fully supports an alternate
> stack - microblaze is the only architecture leaving it unimplemented.
> 
> Patch 2 reserves the ABI argument-home area at the top of the signal
> frame.  The MicroBlaze calling convention reserves [r1+0] for the return
> address and lets a handler store its incoming register arguments r5..r10
> into [r1+4]..[r1+24]; since r1 points at struct rt_sigframe on entry,
> those stores land in siginfo/ucontext and corrupt the signal state.  A
> seven-word leading gap moves them into scratch space.
> 
> Both were tested with the uClibc-ng NPTL tests; the affected tests
> (tst-cancel20/21, tst-cancelx20/21, tst-signal6, tst-timer4/5,
> tst-mqueue5) pass.  checkpatch --strict is clean and both apply to
> current linux-next.
> 
> Changes since v1 [1]:
>   - Patch 2: shrink the gap from eight to seven words.  Michal pointed
>     out that the home area is exactly seven words (r15 at r1+0, r5..r10
>     at r1+4..r1+24); the eighth word was never written by the ABI.
>     Retested on qemu - tst-timer4/5, tst-mqueue5, tst-signal6 still pass.
>   - Patch 2: fix the offset range in the commit message and the in-code
>     comment ([r1+4]..[r1+24], not [r1+28]).
>   - Patch 1: unchanged.
> 
> [1] https://lore.kernel.org/all/cover.1780587199.git.lordrasmus@gmail.com/
> 
> Ramin Moussavi (2):
>    microblaze: wire up sigaltstack
>    microblaze: reserve the ABI argument-home area in the signal frame
> 
>   arch/microblaze/kernel/signal.c             | 8 ++++++++
>   arch/microblaze/kernel/syscalls/syscall.tbl | 2 +-
>   2 files changed, 9 insertions(+), 1 deletion(-)
> 

2 issues here.

1. Do not send it as reply to v1 but separately.
2. Author of patch is not matching SOB in the email
You are sending it from
Ramin Moussavi <lordrasmus@gmail.com>
and SOB has
Ramin Moussavi <ramin.moussavi@yacoub.de>

Please fix it and send v3

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP/Versal ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal/Versal NET SoCs
TF-A maintainer - Xilinx ZynqMP/Versal/Versal NET SoCs