aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/kernel/compat_linux.c14
-rw-r--r--arch/s390/kernel/compat_linux.h3
-rw-r--r--arch/s390/kernel/compat_wrapper.S18
-rw-r--r--arch/s390/kernel/syscalls.S4
4 files changed, 19 insertions, 20 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 59097741f509..ca38139423ae 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -504,3 +504,17 @@ COMPAT_SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, arg
504 a.advice = POSIX_FADV_NOREUSE; 504 a.advice = POSIX_FADV_NOREUSE;
505 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice); 505 return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
506} 506}
507
508COMPAT_SYSCALL_DEFINE6(s390_sync_file_range, int, fd, u32, offhigh, u32, offlow,
509 u32, nhigh, u32, nlow, unsigned int, flags)
510{
511 return sys_sync_file_range(fd, ((loff_t)offhigh << 32) + offlow,
512 ((u64)nhigh << 32) + nlow, flags);
513}
514
515COMPAT_SYSCALL_DEFINE6(s390_fallocate, int, fd, int, mode, u32, offhigh, u32, offlow,
516 u32, lenhigh, u32, lenlow)
517{
518 return sys_fallocate(fd, mode, ((loff_t)offhigh << 32) + offlow,
519 ((u64)lenhigh << 32) + lenlow);
520}
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h
index 7d2ce4bb84a6..330e11d164d7 100644
--- a/arch/s390/kernel/compat_linux.h
+++ b/arch/s390/kernel/compat_linux.h
@@ -110,4 +110,7 @@ long compat_sys_s390_read(unsigned int fd, char __user * buf, compat_size_t coun
110long compat_sys_s390_write(unsigned int fd, const char __user * buf, compat_size_t count); 110long compat_sys_s390_write(unsigned int fd, const char __user * buf, compat_size_t count);
111long compat_sys_s390_fadvise64(int fd, u32 high, u32 low, compat_size_t len, int advise); 111long compat_sys_s390_fadvise64(int fd, u32 high, u32 low, compat_size_t len, int advise);
112long compat_sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); 112long compat_sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
113long compat_sys_s390_sync_file_range(int fd, u32 offhigh, u32 offlow, u32 nhigh, u32 nlow, unsigned int flags);
114long compat_sys_s390_fallocate(int fd, int mode, u32 offhigh, u32 offlow, u32 lenhigh, u32 lenlow);
115
113#endif /* _ASM_S390X_S390_H */ 116#endif /* _ASM_S390X_S390_H */
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index a1a13671922a..23d9f8a7c6f5 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -317,15 +317,6 @@ ENTRY(compat_sys_ppoll_wrapper)
317 llgfr %r6,%r6 # size_t 317 llgfr %r6,%r6 # size_t
318 jg compat_sys_ppoll 318 jg compat_sys_ppoll
319 319
320ENTRY(sys_sync_file_range_wrapper)
321 lgfr %r2,%r2 # int
322 sllg %r3,%r3,32 # get high word of 64bit loff_t
323 or %r3,%r4 # get low word of 64bit loff_t
324 sllg %r4,%r5,32 # get high word of 64bit loff_t
325 or %r4,%r6 # get low word of 64bit loff_t
326 llgf %r5,164(%r15) # unsigned int
327 jg sys_sync_file_range
328
329ENTRY(compat_sys_utimes_wrapper) 320ENTRY(compat_sys_utimes_wrapper)
330 llgtr %r2,%r2 # char * 321 llgtr %r2,%r2 # char *
331 llgtr %r3,%r3 # struct compat_timeval * 322 llgtr %r3,%r3 # struct compat_timeval *
@@ -338,15 +329,6 @@ ENTRY(compat_sys_utimensat_wrapper)
338 lgfr %r5,%r5 # int 329 lgfr %r5,%r5 # int
339 jg compat_sys_utimensat 330 jg compat_sys_utimensat
340 331
341ENTRY(sys_fallocate_wrapper)
342 lgfr %r2,%r2 # int
343 lgfr %r3,%r3 # int
344 sllg %r4,%r4,32 # get high word of 64bit loff_t
345 lr %r4,%r5 # get low word of 64bit loff_t
346 sllg %r5,%r6,32 # get high word of 64bit loff_t
347 l %r5,164(%r15) # get low word of 64bit loff_t
348 jg sys_fallocate
349
350ENTRY(compat_sys_keyctl_wrapper) 332ENTRY(compat_sys_keyctl_wrapper)
351 llgfr %r2,%r2 # u32 333 llgfr %r2,%r2 # u32
352 llgfr %r3,%r3 # u32 334 llgfr %r3,%r3 # u32
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 3ad73a6f6159..dbdec47e935a 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -315,14 +315,14 @@ SYSCALL(sys_unshare,sys_unshare,compat_sys_unshare)
315SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list) 315SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list)
316SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list) 316SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list)
317SYSCALL(sys_splice,sys_splice,compat_sys_splice) 317SYSCALL(sys_splice,sys_splice,compat_sys_splice)
318SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper) 318SYSCALL(sys_sync_file_range,sys_sync_file_range,compat_sys_s390_sync_file_range)
319SYSCALL(sys_tee,sys_tee,compat_sys_tee) 319SYSCALL(sys_tee,sys_tee,compat_sys_tee)
320SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice) 320SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice)
321NI_SYSCALL /* 310 sys_move_pages */ 321NI_SYSCALL /* 310 sys_move_pages */
322SYSCALL(sys_getcpu,sys_getcpu,compat_sys_getcpu) 322SYSCALL(sys_getcpu,sys_getcpu,compat_sys_getcpu)
323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait) 323SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait)
324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) 324SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper)
325SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper) 325SYSCALL(sys_s390_fallocate,sys_fallocate,compat_sys_s390_fallocate)
326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ 326SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd) 327SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd)
328NI_SYSCALL /* 317 old sys_timer_fd */ 328NI_SYSCALL /* 317 old sys_timer_fd */