summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/compat_wrapper.S
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2009-01-23 16:40:27 +0100
committerHeiko Carstens <heiko.carstens@de.ibm.com>2009-01-23 16:40:29 +0100
commite34a6280419a24297e6603075ac5af6ce9f13562 (patch)
treefe0c259274e9d57faa60930044edb39453e5e39b /arch/s390/kernel/compat_wrapper.S
parent179cb81aa1e9dc5444f678a6dd4dbb90c60322e1 (diff)
downloadlinux-e34a6280419a24297e6603075ac5af6ce9f13562.tar.gz
linux-e34a6280419a24297e6603075ac5af6ce9f13562.tar.bz2
linux-e34a6280419a24297e6603075ac5af6ce9f13562.zip
[S390] Add missing compat system call wrappers.
Add wrapper functions for the following compat system calls: * readahead * sendfile64 * tkill * tgkill * keyctl This ensures that the high order bits of the parameter registers are correctly sign extended. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/compat_wrapper.S')
-rw-r--r--arch/s390/kernel/compat_wrapper.S38
1 files changed, 38 insertions, 0 deletions
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 6035cd20c7a7..62c706eb0de6 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -1767,3 +1767,41 @@ sys_dup3_wrapper:
sys_epoll_create1_wrapper:
lgfr %r2,%r2 # int
jg sys_epoll_create1 # branch to system call
+
+ .globl sys32_readahead_wrapper
+sys32_readahead_wrapper:
+ lgfr %r2,%r2 # int
+ llgfr %r3,%r3 # u32
+ llgfr %r4,%r4 # u32
+ lgfr %r5,%r5 # s32
+ jg sys32_readahead # branch to system call
+
+ .globl sys32_sendfile64_wrapper
+sys32_sendfile64_wrapper:
+ lgfr %r2,%r2 # int
+ lgfr %r3,%r3 # int
+ llgtr %r4,%r4 # compat_loff_t *
+ lgfr %r5,%r5 # s32
+ jg sys32_sendfile64 # branch to system call
+
+ .globl sys_tkill_wrapper
+sys_tkill_wrapper:
+ lgfr %r2,%r2 # pid_t
+ lgfr %r3,%r3 # int
+ jg sys_tkill # branch to system call
+
+ .globl sys_tgkill_wrapper
+sys_tgkill_wrapper:
+ lgfr %r2,%r2 # pid_t
+ lgfr %r3,%r3 # pid_t
+ lgfr %r4,%r4 # int
+ jg sys_tgkill # branch to system call
+
+ .globl compat_sys_keyctl_wrapper
+compat_sys_keyctl_wrapper:
+ llgfr %r2,%r2 # u32
+ llgfr %r3,%r3 # u32
+ llgfr %r4,%r4 # u32
+ llgfr %r5,%r5 # u32
+ llgfr %r6,%r6 # u32
+ jg compat_sys_keyctl # branch to system call