diff options
author | Richard Weinberger <richard@nod.at> | 2014-07-13 09:24:03 -0400 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2015-04-12 14:58:24 -0400 |
commit | a4980448ed658db313da3195bcca634c7a5adafa (patch) | |
tree | f3871d68c77b5a823f866f272e61957f38091d9d /arch/arm | |
parent | 973f911f55a0e510dd6db8bbb29cd82ff138d3c0 (diff) |
arm: 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/arm')
-rw-r--r-- | arch/arm/include/asm/thread_info.h | 3 | ||||
-rw-r--r-- | arch/arm/kernel/asm-offsets.c | 1 | ||||
-rw-r--r-- | arch/arm/kernel/signal.c | 13 | ||||
-rw-r--r-- | arch/arm/kernel/traps.c | 6 |
4 files changed, 3 insertions, 20 deletions
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h index 72812a1f3d1c..bd32eded3e50 100644 --- a/arch/arm/include/asm/thread_info.h +++ b/arch/arm/include/asm/thread_info.h | |||
@@ -23,7 +23,6 @@ | |||
23 | #ifndef __ASSEMBLY__ | 23 | #ifndef __ASSEMBLY__ |
24 | 24 | ||
25 | struct task_struct; | 25 | struct task_struct; |
26 | struct exec_domain; | ||
27 | 26 | ||
28 | #include <asm/types.h> | 27 | #include <asm/types.h> |
29 | #include <asm/domain.h> | 28 | #include <asm/domain.h> |
@@ -53,7 +52,6 @@ struct thread_info { | |||
53 | int preempt_count; /* 0 => preemptable, <0 => bug */ | 52 | int preempt_count; /* 0 => preemptable, <0 => bug */ |
54 | mm_segment_t addr_limit; /* address limit */ | 53 | mm_segment_t addr_limit; /* address limit */ |
55 | struct task_struct *task; /* main task structure */ | 54 | struct task_struct *task; /* main task structure */ |
56 | struct exec_domain *exec_domain; /* execution domain */ | ||
57 | __u32 cpu; /* cpu */ | 55 | __u32 cpu; /* cpu */ |
58 | __u32 cpu_domain; /* cpu domain */ | 56 | __u32 cpu_domain; /* cpu domain */ |
59 | struct cpu_context_save cpu_context; /* cpu context */ | 57 | struct cpu_context_save cpu_context; /* cpu context */ |
@@ -73,7 +71,6 @@ struct thread_info { | |||
73 | #define INIT_THREAD_INFO(tsk) \ | 71 | #define INIT_THREAD_INFO(tsk) \ |
74 | { \ | 72 | { \ |
75 | .task = &tsk, \ | 73 | .task = &tsk, \ |
76 | .exec_domain = &default_exec_domain, \ | ||
77 | .flags = 0, \ | 74 | .flags = 0, \ |
78 | .preempt_count = INIT_PREEMPT_COUNT, \ | 75 | .preempt_count = INIT_PREEMPT_COUNT, \ |
79 | .addr_limit = KERNEL_DS, \ | 76 | .addr_limit = KERNEL_DS, \ |
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 2d2d6087b9b1..70d277ce235f 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c | |||
@@ -66,7 +66,6 @@ int main(void) | |||
66 | DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); | 66 | DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count)); |
67 | DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit)); | 67 | DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit)); |
68 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); | 68 | DEFINE(TI_TASK, offsetof(struct thread_info, task)); |
69 | DEFINE(TI_EXEC_DOMAIN, offsetof(struct thread_info, exec_domain)); | ||
70 | DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); | 69 | DEFINE(TI_CPU, offsetof(struct thread_info, cpu)); |
71 | DEFINE(TI_CPU_DOMAIN, offsetof(struct thread_info, cpu_domain)); | 70 | DEFINE(TI_CPU_DOMAIN, offsetof(struct thread_info, cpu_domain)); |
72 | DEFINE(TI_CPU_SAVE, offsetof(struct thread_info, cpu_context)); | 71 | DEFINE(TI_CPU_SAVE, offsetof(struct thread_info, cpu_context)); |
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 023ac905e4c3..423663e23791 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
@@ -318,17 +318,6 @@ get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) | |||
318 | return frame; | 318 | return frame; |
319 | } | 319 | } |
320 | 320 | ||
321 | /* | ||
322 | * translate the signal | ||
323 | */ | ||
324 | static inline int map_sig(int sig) | ||
325 | { | ||
326 | struct thread_info *thread = current_thread_info(); | ||
327 | if (sig < 32 && thread->exec_domain && thread->exec_domain->signal_invmap) | ||
328 | sig = thread->exec_domain->signal_invmap[sig]; | ||
329 | return sig; | ||
330 | } | ||
331 | |||
332 | static int | 321 | static int |
333 | setup_return(struct pt_regs *regs, struct ksignal *ksig, | 322 | setup_return(struct pt_regs *regs, struct ksignal *ksig, |
334 | unsigned long __user *rc, void __user *frame) | 323 | unsigned long __user *rc, void __user *frame) |
@@ -412,7 +401,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig, | |||
412 | } | 401 | } |
413 | } | 402 | } |
414 | 403 | ||
415 | regs->ARM_r0 = map_sig(ksig->sig); | 404 | regs->ARM_r0 = ksig->sig; |
416 | regs->ARM_sp = (unsigned long)frame; | 405 | regs->ARM_sp = (unsigned long)frame; |
417 | regs->ARM_lr = retcode; | 406 | regs->ARM_lr = retcode; |
418 | regs->ARM_pc = handler; | 407 | regs->ARM_pc = handler; |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index 788e23fe64d8..3dce1a342030 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -505,12 +505,10 @@ asmlinkage void bad_mode(struct pt_regs *regs, int reason) | |||
505 | 505 | ||
506 | static int bad_syscall(int n, struct pt_regs *regs) | 506 | static int bad_syscall(int n, struct pt_regs *regs) |
507 | { | 507 | { |
508 | struct thread_info *thread = current_thread_info(); | ||
509 | siginfo_t info; | 508 | siginfo_t info; |
510 | 509 | ||
511 | if ((current->personality & PER_MASK) != PER_LINUX && | 510 | if ((current->personality & PER_MASK) != PER_LINUX) { |
512 | thread->exec_domain->handler) { | 511 | send_sig(SIGSEGV, current, 1); |
513 | thread->exec_domain->handler(n, regs); | ||
514 | return regs->ARM_r0; | 512 | return regs->ARM_r0; |
515 | } | 513 | } |
516 | 514 | ||