diff options
author | Richard Weinberger <richard@nod.at> | 2014-09-09 17:50:11 -0400 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2015-04-12 14:58:25 -0400 |
commit | 6a32591a4a38948d785a3bb0dac32d5be1f76354 (patch) | |
tree | 8b468beffd6b32f481e4adf28b5affe3a69784c1 /arch/s390 | |
parent | 78d156b8d8e5884cb5af07f9e57a45a1ae5d59cf (diff) |
s390: Remove signal translation and exec_domain
As execution domain support is gone we can remove
signal translation from the signal code and remove
exec_domain from thread_info.
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/s390')
-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 |
4 files changed, 4 insertions, 27 deletions
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index ef1df718642d..0a6dcff94cde 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
@@ -34,7 +34,6 @@ | |||
34 | */ | 34 | */ |
35 | struct thread_info { | 35 | struct thread_info { |
36 | struct task_struct *task; /* main task structure */ | 36 | struct task_struct *task; /* main task structure */ |
37 | struct exec_domain *exec_domain; /* execution domain */ | ||
38 | unsigned long flags; /* low level flags */ | 37 | unsigned long flags; /* low level flags */ |
39 | unsigned long sys_call_table; /* System call table address */ | 38 | unsigned long sys_call_table; /* System call table address */ |
40 | unsigned int cpu; /* current CPU */ | 39 | unsigned int cpu; /* current CPU */ |
@@ -51,7 +50,6 @@ struct thread_info { | |||
51 | #define INIT_THREAD_INFO(tsk) \ | 50 | #define INIT_THREAD_INFO(tsk) \ |
52 | { \ | 51 | { \ |
53 | .task = &tsk, \ | 52 | .task = &tsk, \ |
54 | .exec_domain = &default_exec_domain, \ | ||
55 | .flags = 0, \ | 53 | .flags = 0, \ |
56 | .cpu = 0, \ | 54 | .cpu = 0, \ |
57 | .preempt_count = INIT_PREEMPT_COUNT, \ | 55 | .preempt_count = INIT_PREEMPT_COUNT, \ |
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index e07e91605353..e52a202b13b5 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 b3ae6f70c6d6..c3f71c4f7b71 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -309,16 +309,6 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) | |||
309 | return (void __user *)((sp - frame_size) & -8ul); | 309 | return (void __user *)((sp - frame_size) & -8ul); |
310 | } | 310 | } |
311 | 311 | ||
312 | static inline int map_signal(int sig) | ||
313 | { | ||
314 | if (current_thread_info()->exec_domain | ||
315 | && current_thread_info()->exec_domain->signal_invmap | ||
316 | && sig < 32) | ||
317 | return current_thread_info()->exec_domain->signal_invmap[sig]; | ||
318 | else | ||
319 | return sig; | ||
320 | } | ||
321 | |||
322 | static int setup_frame(int sig, struct k_sigaction *ka, | 312 | static int setup_frame(int sig, struct k_sigaction *ka, |
323 | sigset_t *set, struct pt_regs * regs) | 313 | sigset_t *set, struct pt_regs * regs) |
324 | { | 314 | { |
@@ -386,7 +376,7 @@ static int setup_frame(int sig, struct k_sigaction *ka, | |||
386 | (regs->psw.mask & ~PSW_MASK_ASC); | 376 | (regs->psw.mask & ~PSW_MASK_ASC); |
387 | regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE; | 377 | regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE; |
388 | 378 | ||
389 | regs->gprs[2] = map_signal(sig); | 379 | regs->gprs[2] = sig; |
390 | regs->gprs[3] = (unsigned long) &frame->sc; | 380 | regs->gprs[3] = (unsigned long) &frame->sc; |
391 | 381 | ||
392 | /* We forgot to include these in the sigcontext. | 382 | /* We forgot to include these in the sigcontext. |
@@ -468,7 +458,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, | |||
468 | (regs->psw.mask & ~PSW_MASK_ASC); | 458 | (regs->psw.mask & ~PSW_MASK_ASC); |
469 | regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE; | 459 | regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE; |
470 | 460 | ||
471 | regs->gprs[2] = map_signal(ksig->sig); | 461 | regs->gprs[2] = ksig->sig; |
472 | regs->gprs[3] = (unsigned long) &frame->info; | 462 | regs->gprs[3] = (unsigned long) &frame->info; |
473 | regs->gprs[4] = (unsigned long) &frame->uc; | 463 | regs->gprs[4] = (unsigned long) &frame->uc; |
474 | regs->gprs[5] = task_thread_info(current)->last_break; | 464 | regs->gprs[5] = task_thread_info(current)->last_break; |