diff options
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 28 | ||||
-rw-r--r-- | arch/s390/kernel/kprobes.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 5 | ||||
-rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 4 |
4 files changed, 36 insertions, 3 deletions
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 32a69a18a796..acc415457b45 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -1682,3 +1682,31 @@ compat_sys_utimes_wrapper: | |||
1682 | llgtr %r2,%r2 # char * | 1682 | llgtr %r2,%r2 # char * |
1683 | llgtr %r3,%r3 # struct compat_timeval * | 1683 | llgtr %r3,%r3 # struct compat_timeval * |
1684 | jg compat_sys_utimes | 1684 | jg compat_sys_utimes |
1685 | |||
1686 | .globl compat_sys_utimensat_wrapper | ||
1687 | compat_sys_utimensat_wrapper: | ||
1688 | llgfr %r2,%r2 # unsigned int | ||
1689 | llgtr %r3,%r3 # char * | ||
1690 | llgtr %r4,%r4 # struct compat_timespec * | ||
1691 | lgfr %r5,%r5 # int | ||
1692 | jg compat_sys_utimensat | ||
1693 | |||
1694 | .globl compat_sys_signalfd_wrapper | ||
1695 | compat_sys_signalfd_wrapper: | ||
1696 | lgfr %r2,%r2 # int | ||
1697 | llgtr %r3,%r3 # compat_sigset_t * | ||
1698 | llgfr %r4,%r4 # compat_size_t | ||
1699 | jg compat_sys_signalfd | ||
1700 | |||
1701 | .globl compat_sys_timerfd_wrapper | ||
1702 | compat_sys_timerfd_wrapper: | ||
1703 | lgfr %r2,%r2 # int | ||
1704 | lgfr %r3,%r3 # int | ||
1705 | lgfr %r4,%r4 # int | ||
1706 | llgtr %r5,%r5 # struct compat_itimerspec * | ||
1707 | jg compat_sys_timerfd | ||
1708 | |||
1709 | .globl sys_eventfd_wrapper | ||
1710 | sys_eventfd_wrapper: | ||
1711 | llgfr %r2,%r2 # unsigned int | ||
1712 | jg sys_eventfd | ||
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index e39333ae0fcf..358d2bbbc481 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -413,7 +413,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, | |||
413 | break; | 413 | break; |
414 | } | 414 | } |
415 | } | 415 | } |
416 | BUG_ON(!orig_ret_address || (orig_ret_address == trampoline_address)); | 416 | kretprobe_assert(ri, orig_ret_address, trampoline_address); |
417 | regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; | 417 | regs->psw.addr = orig_ret_address | PSW_ADDR_AMODE; |
418 | 418 | ||
419 | reset_current_kprobe(); | 419 | reset_current_kprobe(); |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index cd8d321cd0c2..738feb4a0aad 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -322,3 +322,8 @@ NI_SYSCALL /* 310 sys_move_pages */ | |||
322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) | 322 | SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) |
323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) | 323 | SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) |
324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) | 324 | SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) |
325 | NI_SYSCALL /* 314 sys_fallocate */ | ||
326 | SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ | ||
327 | SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) | ||
328 | SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper) | ||
329 | SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper) | ||
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index e9d3432aba60..7158a804a5e4 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -21,7 +21,7 @@ SECTIONS | |||
21 | . = 0x00000000; | 21 | . = 0x00000000; |
22 | _text = .; /* Text and read-only data */ | 22 | _text = .; /* Text and read-only data */ |
23 | .text : { | 23 | .text : { |
24 | *(.text) | 24 | TEXT_TEXT |
25 | SCHED_TEXT | 25 | SCHED_TEXT |
26 | LOCK_TEXT | 26 | LOCK_TEXT |
27 | KPROBES_TEXT | 27 | KPROBES_TEXT |
@@ -48,7 +48,7 @@ SECTIONS | |||
48 | BUG_TABLE | 48 | BUG_TABLE |
49 | 49 | ||
50 | .data : { /* Data */ | 50 | .data : { /* Data */ |
51 | *(.data) | 51 | DATA_DATA |
52 | CONSTRUCTORS | 52 | CONSTRUCTORS |
53 | } | 53 | } |
54 | 54 | ||