diff options
Diffstat (limited to 'arch/s390')
| -rw-r--r-- | arch/s390/hypfs/inode.c | 2 | ||||
| -rw-r--r-- | arch/s390/include/asm/thread_info.h | 2 | ||||
| -rw-r--r-- | arch/s390/kernel/asm-offsets.c | 1 | ||||
| -rw-r--r-- | arch/s390/kernel/compat_signal.c | 14 | ||||
| -rw-r--r-- | arch/s390/kernel/signal.c | 14 |
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, | |||
| 437 | static const struct file_operations hypfs_file_ops = { | 437 | static 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 | */ |
| 30 | struct thread_info { | 30 | struct 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 | ||
| 373 | static 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 | |||
| 383 | static int setup_frame32(struct ksignal *ksig, sigset_t *set, | 373 | static 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 | ||
| 304 | static 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 | |||
| 314 | static int setup_frame(int sig, struct k_sigaction *ka, | 304 | static 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; |
