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

From: Ramin Moussavi

Date: Thu Jun 04 2026 - 11:50:40 EST


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 lets a handler store its
incoming register arguments into [r1+4]..[r1+28]; since r1 points at
struct rt_sigframe on entry, those stores land in siginfo/ucontext and
corrupt the signal state. An eight-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) now pass. checkpatch --strict is clean and both apply to
current linux-next.

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

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

--
2.53.0