]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
arm: Remove signal translation and exec_domain
authorRichard Weinberger <richard@nod.at>
Sun, 13 Jul 2014 13:24:03 +0000 (15:24 +0200)
committerRichard Weinberger <richard@nod.at>
Sun, 12 Apr 2015 18:58:24 +0000 (20:58 +0200)
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>
arch/arm/include/asm/thread_info.h
arch/arm/kernel/asm-offsets.c
arch/arm/kernel/signal.c
arch/arm/kernel/traps.c

index 72812a1f3d1cc9df83c8b7354655adf345069dad..bd32eded3e5061b49048e3110902b7edc63e3638 100644 (file)
@@ -23,7 +23,6 @@
 #ifndef __ASSEMBLY__
 
 struct task_struct;
-struct exec_domain;
 
 #include <asm/types.h>
 #include <asm/domain.h>
@@ -53,7 +52,6 @@ struct thread_info {
        int                     preempt_count;  /* 0 => preemptable, <0 => bug */
        mm_segment_t            addr_limit;     /* address limit */
        struct task_struct      *task;          /* main task structure */
-       struct exec_domain      *exec_domain;   /* execution domain */
        __u32                   cpu;            /* cpu */
        __u32                   cpu_domain;     /* cpu domain */
        struct cpu_context_save cpu_context;    /* cpu context */
@@ -73,7 +71,6 @@ struct thread_info {
 #define INIT_THREAD_INFO(tsk)                                          \
 {                                                                      \
        .task           = &tsk,                                         \
-       .exec_domain    = &default_exec_domain,                         \
        .flags          = 0,                                            \
        .preempt_count  = INIT_PREEMPT_COUNT,                           \
        .addr_limit     = KERNEL_DS,                                    \
index 2d2d6087b9b105d5dadcd66f9821deefe50d1e66..70d277ce235fcd85987fb1441e440010e6287d56 100644 (file)
@@ -66,7 +66,6 @@ int main(void)
   DEFINE(TI_PREEMPT,           offsetof(struct thread_info, preempt_count));
   DEFINE(TI_ADDR_LIMIT,                offsetof(struct thread_info, addr_limit));
   DEFINE(TI_TASK,              offsetof(struct thread_info, task));
-  DEFINE(TI_EXEC_DOMAIN,       offsetof(struct thread_info, exec_domain));
   DEFINE(TI_CPU,               offsetof(struct thread_info, cpu));
   DEFINE(TI_CPU_DOMAIN,                offsetof(struct thread_info, cpu_domain));
   DEFINE(TI_CPU_SAVE,          offsetof(struct thread_info, cpu_context));
index 023ac905e4c38c9858e5c644a374c343a0be334b..423663e23791e1349f877990b021f8371fe85c24 100644 (file)
@@ -318,17 +318,6 @@ get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize)
        return frame;
 }
 
-/*
- * translate the signal
- */
-static inline int map_sig(int sig)
-{
-       struct thread_info *thread = current_thread_info();
-       if (sig < 32 && thread->exec_domain && thread->exec_domain->signal_invmap)
-               sig = thread->exec_domain->signal_invmap[sig];
-       return sig;
-}
-
 static int
 setup_return(struct pt_regs *regs, struct ksignal *ksig,
             unsigned long __user *rc, void __user *frame)
@@ -412,7 +401,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
                }
        }
 
-       regs->ARM_r0 = map_sig(ksig->sig);
+       regs->ARM_r0 = ksig->sig;
        regs->ARM_sp = (unsigned long)frame;
        regs->ARM_lr = retcode;
        regs->ARM_pc = handler;
index 788e23fe64d8e5502f553464c8718a2bf00bf2cb..3dce1a342030d161b1a0ee5442c0c11c5ca06780 100644 (file)
@@ -505,12 +505,10 @@ asmlinkage void bad_mode(struct pt_regs *regs, int reason)
 
 static int bad_syscall(int n, struct pt_regs *regs)
 {
-       struct thread_info *thread = current_thread_info();
        siginfo_t info;
 
-       if ((current->personality & PER_MASK) != PER_LINUX &&
-           thread->exec_domain->handler) {
-               thread->exec_domain->handler(n, regs);
+       if ((current->personality & PER_MASK) != PER_LINUX) {
+               send_sig(SIGSEGV, current, 1);
                return regs->ARM_r0;
        }