aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/hypfs/inode.c2
-rw-r--r--arch/s390/include/asm/thread_info.h2
-rw-r--r--arch/s390/kernel/asm-offsets.c1
-rw-r--r--arch/s390/kernel/compat_signal.c14
-rw-r--r--arch/s390/kernel/signal.c14
5 files changed, 4 insertions, 29 deletions
diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c
index df7d8cbee377..3f5c799b7fb5 100644
--- a/arch/s390/hypfs/inode.c
+++ b/arch/s390/hypfs/inode.c
@@ -437,8 +437,6 @@ struct dentry *hypfs_create_str(struct dentry *dir,
437static const struct file_operations hypfs_file_ops = { 437static const struct file_operations hypfs_file_ops = {
438 .open = hypfs_open, 438 .open = hypfs_open,
439 .release = hypfs_release, 439 .release = hypfs_release,
440 .read = new_sync_read,
441 .write = new_sync_write,
442 .read_iter = hypfs_read_iter, 440 .read_iter = hypfs_read_iter,
443 .write_iter = hypfs_write_iter, 441 .write_iter = hypfs_write_iter,
444 .llseek = no_llseek, 442 .llseek = no_llseek,
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h
index d532098d98bf..4c27ec764c36 100644
--- a/arch/s390/include/asm/thread_info.h
+++ b/arch/s390/include/asm/thread_info.h
@@ -29,7 +29,6 @@
29 */ 29 */
30struct thread_info { 30struct thread_info {
31 struct task_struct *task; /* main task structure */ 31 struct task_struct *task; /* main task structure */
32 struct exec_domain *exec_domain; /* execution domain */
33 unsigned long flags; /* low level flags */ 32 unsigned long flags; /* low level flags */
34 unsigned long sys_call_table; /* System call table address */ 33 unsigned long sys_call_table; /* System call table address */
35 unsigned int cpu; /* current CPU */ 34 unsigned int cpu; /* current CPU */
@@ -46,7 +45,6 @@ struct thread_info {
46#define INIT_THREAD_INFO(tsk) \ 45#define INIT_THREAD_INFO(tsk) \
47{ \ 46{ \
48 .task = &tsk, \ 47 .task = &tsk, \
49 .exec_domain = &default_exec_domain, \
50 .flags = 0, \ 48 .flags = 0, \
51 .cpu = 0, \ 49 .cpu = 0, \
52 .preempt_count = INIT_PREEMPT_COUNT, \ 50 .preempt_count = INIT_PREEMPT_COUNT, \
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index f35058da8eaf..c7d1b9d09011 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -34,7 +34,6 @@ int main(void)
34 DEFINE(__THREAD_per_paid, offsetof(struct task_struct, thread.per_event.paid)); 34 DEFINE(__THREAD_per_paid, offsetof(struct task_struct, thread.per_event.paid));
35 BLANK(); 35 BLANK();
36 DEFINE(__TI_task, offsetof(struct thread_info, task)); 36 DEFINE(__TI_task, offsetof(struct thread_info, task));
37 DEFINE(__TI_domain, offsetof(struct thread_info, exec_domain));
38 DEFINE(__TI_flags, offsetof(struct thread_info, flags)); 37 DEFINE(__TI_flags, offsetof(struct thread_info, flags));
39 DEFINE(__TI_sysc_table, offsetof(struct thread_info, sys_call_table)); 38 DEFINE(__TI_sysc_table, offsetof(struct thread_info, sys_call_table));
40 DEFINE(__TI_cpu, offsetof(struct thread_info, cpu)); 39 DEFINE(__TI_cpu, offsetof(struct thread_info, cpu));
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index bc1df12dd4f8..fe8d6924efaa 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -370,16 +370,6 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
370 return (void __user *)((sp - frame_size) & -8ul); 370 return (void __user *)((sp - frame_size) & -8ul);
371} 371}
372 372
373static inline int map_signal(int sig)
374{
375 if (current_thread_info()->exec_domain
376 && current_thread_info()->exec_domain->signal_invmap
377 && sig < 32)
378 return current_thread_info()->exec_domain->signal_invmap[sig];
379 else
380 return sig;
381}
382
383static int setup_frame32(struct ksignal *ksig, sigset_t *set, 373static int setup_frame32(struct ksignal *ksig, sigset_t *set,
384 struct pt_regs *regs) 374 struct pt_regs *regs)
385{ 375{
@@ -449,7 +439,7 @@ static int setup_frame32(struct ksignal *ksig, sigset_t *set,
449 (regs->psw.mask & ~PSW_MASK_ASC); 439 (regs->psw.mask & ~PSW_MASK_ASC);
450 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; 440 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler;
451 441
452 regs->gprs[2] = map_signal(sig); 442 regs->gprs[2] = sig;
453 regs->gprs[3] = (__force __u64) &frame->sc; 443 regs->gprs[3] = (__force __u64) &frame->sc;
454 444
455 /* We forgot to include these in the sigcontext. 445 /* We forgot to include these in the sigcontext.
@@ -532,7 +522,7 @@ static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set,
532 (regs->psw.mask & ~PSW_MASK_ASC); 522 (regs->psw.mask & ~PSW_MASK_ASC);
533 regs->psw.addr = (__u64 __force) ksig->ka.sa.sa_handler; 523 regs->psw.addr = (__u64 __force) ksig->ka.sa.sa_handler;
534 524
535 regs->gprs[2] = map_signal(ksig->sig); 525 regs->gprs[2] = ksig->sig;
536 regs->gprs[3] = (__force __u64) &frame->info; 526 regs->gprs[3] = (__force __u64) &frame->info;
537 regs->gprs[4] = (__force __u64) &frame->uc; 527 regs->gprs[4] = (__force __u64) &frame->uc;
538 regs->gprs[5] = task_thread_info(current)->last_break; 528 regs->gprs[5] = task_thread_info(current)->last_break;
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index 7fec60cb0b75..c551f22ce066 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -301,16 +301,6 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
301 return (void __user *)((sp - frame_size) & -8ul); 301 return (void __user *)((sp - frame_size) & -8ul);
302} 302}
303 303
304static inline int map_signal(int sig)
305{
306 if (current_thread_info()->exec_domain
307 && current_thread_info()->exec_domain->signal_invmap
308 && sig < 32)
309 return current_thread_info()->exec_domain->signal_invmap[sig];
310 else
311 return sig;
312}
313
314static int setup_frame(int sig, struct k_sigaction *ka, 304static int setup_frame(int sig, struct k_sigaction *ka,
315 sigset_t *set, struct pt_regs * regs) 305 sigset_t *set, struct pt_regs * regs)
316{ 306{
@@ -378,7 +368,7 @@ static int setup_frame(int sig, struct k_sigaction *ka,
378 (regs->psw.mask & ~PSW_MASK_ASC); 368 (regs->psw.mask & ~PSW_MASK_ASC);
379 regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE; 369 regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE;
380 370
381 regs->gprs[2] = map_signal(sig); 371 regs->gprs[2] = sig;
382 regs->gprs[3] = (unsigned long) &frame->sc; 372 regs->gprs[3] = (unsigned long) &frame->sc;
383 373
384 /* We forgot to include these in the sigcontext. 374 /* We forgot to include these in the sigcontext.
@@ -458,7 +448,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
458 (regs->psw.mask & ~PSW_MASK_ASC); 448 (regs->psw.mask & ~PSW_MASK_ASC);
459 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE; 449 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE;
460 450
461 regs->gprs[2] = map_signal(ksig->sig); 451 regs->gprs[2] = ksig->sig;
462 regs->gprs[3] = (unsigned long) &frame->info; 452 regs->gprs[3] = (unsigned long) &frame->info;
463 regs->gprs[4] = (unsigned long) &frame->uc; 453 regs->gprs[4] = (unsigned long) &frame->uc;
464 regs->gprs[5] = task_thread_info(current)->last_break; 454 regs->gprs[5] = task_thread_info(current)->last_break;