]> git.baikalelectronics.ru Git - kernel.git/commit
[S390] fix compat sigaltstack syscall table entry
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>
Fri, 23 Jan 2009 15:40:24 +0000 (16:40 +0100)
committerHeiko Carstens <heiko.carstens@de.ibm.com>
Fri, 23 Jan 2009 15:40:28 +0000 (16:40 +0100)
commitc38f624cee2f2f0d205524ffd61727e247a1ccde
treee40a6ceee197a48f6d15fce4bf4d62225e76a1ff
parent9f88260aec9bcfa30fb4d9d3480618644f313660
[S390] fix compat sigaltstack syscall table entry

When 31 bit user space programs call sigaltstack on a 64 bit Linux
OS, the system call returns -1 with errno=EFAULT. The 31 bit pointer passed
to the system call is extended to 64 bit, but the high order bits are not
set to zero. The kernel detects the invalid user space pointer and
returns -EFAULT. To solve the problem, sys32_sigaltstack_wrapper()
instead of sys32_sigaltstack() has to be called. The wrapper function sets
the high order bits to zero.

Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/kernel/syscalls.S