[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