diff options
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 14 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 3 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 18 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 4 |
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 | |||
508 | COMPAT_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 | |||
515 | COMPAT_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 | |||
110 | long compat_sys_s390_write(unsigned int fd, const char __user * buf, compat_size_t count); | 110 | long compat_sys_s390_write(unsigned int fd, const char __user * buf, compat_size_t count); |
111 | long compat_sys_s390_fadvise64(int fd, u32 high, u32 low, compat_size_t len, int advise); | 111 | long compat_sys_s390_fadvise64(int fd, u32 high, u32 low, compat_size_t len, int advise); |
112 | long compat_sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); | 112 | long compat_sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); |
113 | long compat_sys_s390_sync_file_range(int fd, u32 offhigh, u32 offlow, u32 nhigh, u32 nlow, unsigned int flags); | ||
114 | long 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 | ||
320 | ENTRY(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 | |||
329 | ENTRY(compat_sys_utimes_wrapper) | 320 | ENTRY(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 | ||
341 | ENTRY(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 | |||
350 | ENTRY(compat_sys_keyctl_wrapper) | 332 | ENTRY(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) | |||
315 | SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list) | 315 | SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list) |
316 | SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list) | 316 | SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list) |
317 | SYSCALL(sys_splice,sys_splice,compat_sys_splice) | 317 | SYSCALL(sys_splice,sys_splice,compat_sys_splice) |
318 | SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper) | 318 | SYSCALL(sys_sync_file_range,sys_sync_file_range,compat_sys_s390_sync_file_range) |
319 | SYSCALL(sys_tee,sys_tee,compat_sys_tee) | 319 | SYSCALL(sys_tee,sys_tee,compat_sys_tee) |
320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice) | 320 | SYSCALL(sys_vmsplice,sys_vmsplice,compat_sys_vmsplice) |
321 | NI_SYSCALL /* 310 sys_move_pages */ | 321 | NI_SYSCALL /* 310 sys_move_pages */ |
322 | SYSCALL(sys_getcpu,sys_getcpu,compat_sys_getcpu) | 322 | SYSCALL(sys_getcpu,sys_getcpu,compat_sys_getcpu) |
323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait) | 323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait) |
324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) | 324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) |
325 | SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper) | 325 | SYSCALL(sys_s390_fallocate,sys_fallocate,compat_sys_s390_fallocate) |
326 | SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ | 326 | SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ |
327 | SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd) | 327 | SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd) |
328 | NI_SYSCALL /* 317 old sys_timer_fd */ | 328 | NI_SYSCALL /* 317 old sys_timer_fd */ |