[PATCH] S390: Fix struct sigaction for 31bit in kernel_sigaction.h.
Stefan Liebler
stli@linux.vnet.ibm.com
Wed Apr 11 15:22:00 GMT 2018
Hi,
the recent commit b4a5d26d8835d972995f0a0a2f805a8845bafa0b
"linux: Consolidate sigaction implementation" changed the definition
of struct sigaction for s390 (31bit). Unfortunately the order of the
fields were wrong.
This leads to blocking testcases e.g. nptl/tst-sem11. A thread which
blocks due to sem_wait() is cancelled via pthread_cancel() and the
signal-handler sigcancel_handler (see <glibc-src>/nptl/nptl-init.c is
called. But it just returns as the siginfo_t argument is not setup by
the kernel. Then the main-thread is blocking due to pthread_join().
The flag SA_SIGINFO is set in sa_flags in struct sigaction and is copied
to the "kernel_sigaction.h" struct by the sigaction() call, but due to
the wrong ordering of the struct fields, the kernel does not recognize it.
This patch is fixing the definition of s390-kernel_sigaction.h struct
for 31bit.
Okay to commit?
Bye
Stefan
ChangeLog:
* sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
(struct kernel_sigaction): Use the same definition
on 31bit as is used on 64bit.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20180411_s390_kernel_sigaction.patch
Type: text/x-patch
Size: 2743 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20180411/26e44809/attachment.bin>
More information about the Libc-alpha
mailing list