diff options
Diffstat (limited to 'arch/s390/kernel/compat_signal.c')
-rw-r--r-- | arch/s390/kernel/compat_signal.c | 14 |
1 files changed, 2 insertions, 12 deletions
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; |