diff options
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/entry.h | 2 | ||||
-rw-r--r-- | arch/s390/kernel/kprobes.c | 9 | ||||
-rw-r--r-- | arch/s390/kernel/smp.c | 3 | ||||
-rw-r--r-- | arch/s390/kernel/sys_s390.c | 19 | ||||
-rw-r--r-- | arch/s390/kernel/vdso.c | 3 | ||||
-rw-r--r-- | arch/s390/kernel/vdso32/gettimeofday.S | 4 |
6 files changed, 9 insertions, 31 deletions
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h index 6b1896345eda..a65afc91e8aa 100644 --- a/arch/s390/kernel/entry.h +++ b/arch/s390/kernel/entry.h | |||
@@ -54,7 +54,5 @@ long sys_sigreturn(void); | |||
54 | long sys_rt_sigreturn(void); | 54 | long sys_rt_sigreturn(void); |
55 | long sys32_sigreturn(void); | 55 | long sys32_sigreturn(void); |
56 | long sys32_rt_sigreturn(void); | 56 | long sys32_rt_sigreturn(void); |
57 | long old_select(struct sel_arg_struct __user *arg); | ||
58 | long sys_ptrace(long request, long pid, long addr, long data); | ||
59 | 57 | ||
60 | #endif /* _ENTRY_H */ | 58 | #endif /* _ENTRY_H */ |
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c index 569079ec4ff0..a01cf0284db2 100644 --- a/arch/s390/kernel/kprobes.c +++ b/arch/s390/kernel/kprobes.c | |||
@@ -218,9 +218,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) | |||
218 | 218 | ||
219 | void __kprobes arch_remove_kprobe(struct kprobe *p) | 219 | void __kprobes arch_remove_kprobe(struct kprobe *p) |
220 | { | 220 | { |
221 | mutex_lock(&kprobe_mutex); | 221 | if (p->ainsn.insn) { |
222 | free_insn_slot(p->ainsn.insn, 0); | 222 | free_insn_slot(p->ainsn.insn, 0); |
223 | mutex_unlock(&kprobe_mutex); | 223 | p->ainsn.insn = NULL; |
224 | } | ||
224 | } | 225 | } |
225 | 226 | ||
226 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) | 227 | static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs) |
@@ -381,7 +382,7 @@ static int __kprobes trampoline_probe_handler(struct kprobe *p, | |||
381 | /* | 382 | /* |
382 | * It is possible to have multiple instances associated with a given | 383 | * It is possible to have multiple instances associated with a given |
383 | * task either because an multiple functions in the call path | 384 | * task either because an multiple functions in the call path |
384 | * have a return probe installed on them, and/or more then one return | 385 | * have a return probe installed on them, and/or more than one return |
385 | * return probe was registered for a target function. | 386 | * return probe was registered for a target function. |
386 | * | 387 | * |
387 | * We can handle this because: | 388 | * We can handle this because: |
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index 9c0ccb532a45..2d337cbb9329 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -685,7 +685,8 @@ void __init smp_prepare_cpus(unsigned int max_cpus) | |||
685 | if (MACHINE_HAS_IEEE) | 685 | if (MACHINE_HAS_IEEE) |
686 | lowcore->extended_save_area_addr = (u32) save_area; | 686 | lowcore->extended_save_area_addr = (u32) save_area; |
687 | #else | 687 | #else |
688 | BUG_ON(vdso_alloc_per_cpu(smp_processor_id(), lowcore)); | 688 | if (vdso_alloc_per_cpu(smp_processor_id(), lowcore)) |
689 | BUG(); | ||
689 | #endif | 690 | #endif |
690 | set_prefix((u32)(unsigned long) lowcore); | 691 | set_prefix((u32)(unsigned long) lowcore); |
691 | local_mcck_enable(); | 692 | local_mcck_enable(); |
diff --git a/arch/s390/kernel/sys_s390.c b/arch/s390/kernel/sys_s390.c index 4fe952e557ac..c34be4568b80 100644 --- a/arch/s390/kernel/sys_s390.c +++ b/arch/s390/kernel/sys_s390.c | |||
@@ -103,25 +103,6 @@ out: | |||
103 | return error; | 103 | return error; |
104 | } | 104 | } |
105 | 105 | ||
106 | #ifndef CONFIG_64BIT | ||
107 | struct sel_arg_struct { | ||
108 | unsigned long n; | ||
109 | fd_set __user *inp, *outp, *exp; | ||
110 | struct timeval __user *tvp; | ||
111 | }; | ||
112 | |||
113 | asmlinkage long old_select(struct sel_arg_struct __user *arg) | ||
114 | { | ||
115 | struct sel_arg_struct a; | ||
116 | |||
117 | if (copy_from_user(&a, arg, sizeof(a))) | ||
118 | return -EFAULT; | ||
119 | /* sys_select() does the appropriate kernel locking */ | ||
120 | return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp); | ||
121 | |||
122 | } | ||
123 | #endif /* CONFIG_64BIT */ | ||
124 | |||
125 | /* | 106 | /* |
126 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. | 107 | * sys_ipc() is the de-multiplexer for the SysV IPC calls.. |
127 | * | 108 | * |
diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c index 25a6a82f1c02..690e17819686 100644 --- a/arch/s390/kernel/vdso.c +++ b/arch/s390/kernel/vdso.c | |||
@@ -322,7 +322,8 @@ static int __init vdso_init(void) | |||
322 | vdso64_pagelist[vdso64_pages - 1] = virt_to_page(vdso_data); | 322 | vdso64_pagelist[vdso64_pages - 1] = virt_to_page(vdso_data); |
323 | vdso64_pagelist[vdso64_pages] = NULL; | 323 | vdso64_pagelist[vdso64_pages] = NULL; |
324 | #ifndef CONFIG_SMP | 324 | #ifndef CONFIG_SMP |
325 | BUG_ON(vdso_alloc_per_cpu(0, S390_lowcore)); | 325 | if (vdso_alloc_per_cpu(0, &S390_lowcore)) |
326 | BUG(); | ||
326 | #endif | 327 | #endif |
327 | vdso_init_cr5(); | 328 | vdso_init_cr5(); |
328 | #endif /* CONFIG_64BIT */ | 329 | #endif /* CONFIG_64BIT */ |
diff --git a/arch/s390/kernel/vdso32/gettimeofday.S b/arch/s390/kernel/vdso32/gettimeofday.S index c32f29c3d70c..ad8acfc949fb 100644 --- a/arch/s390/kernel/vdso32/gettimeofday.S +++ b/arch/s390/kernel/vdso32/gettimeofday.S | |||
@@ -13,10 +13,6 @@ | |||
13 | #include <asm/asm-offsets.h> | 13 | #include <asm/asm-offsets.h> |
14 | #include <asm/unistd.h> | 14 | #include <asm/unistd.h> |
15 | 15 | ||
16 | #include <asm/vdso.h> | ||
17 | #include <asm/asm-offsets.h> | ||
18 | #include <asm/unistd.h> | ||
19 | |||
20 | .text | 16 | .text |
21 | .align 4 | 17 | .align 4 |
22 | .globl __kernel_gettimeofday | 18 | .globl __kernel_gettimeofday |