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

index 657c039196276118a150a33a93f34daf61f29544..2afa321157be6f4e83ce791090026a29a73abc23 100644 (file)
@@ -27,7 +27,6 @@
 
 struct thread_info {
        struct task_struct      *task;          /* main task structure */
-       struct exec_domain      *exec_domain;   /* execution domain */
        unsigned long           flags;          /* low level flags */
        __u32                   status;         /* thread synchronous flags */
        __u32                   cpu;
@@ -56,7 +55,6 @@ struct thread_info {
 #define INIT_THREAD_INFO(tsk)                  \
 {                                              \
        .task           = &tsk,                 \
-       .exec_domain    = &default_exec_domain, \
        .flags          = 0,                    \
        .status         = 0,                    \
        .cpu            = 0,                    \
index 542225fedb112088b881a12bb76b4c637ce9f92d..4bd44da910f374616a4dee3eabcaef4c52639b4a 100644 (file)
@@ -21,7 +21,6 @@ int main(void)
 {
        /* offsets into the thread_info struct */
        DEFINE(TI_TASK,         offsetof(struct thread_info, task));
-       DEFINE(TI_EXEC_DOMAIN,  offsetof(struct thread_info, exec_domain));
        DEFINE(TI_FLAGS,        offsetof(struct thread_info, flags));
        DEFINE(TI_CPU,          offsetof(struct thread_info, cpu));
        DEFINE(TI_PRE_COUNT,    offsetof(struct thread_info, preempt_count));
index 65a1ecd77f96005b8977df46076475266d0a37e6..eb10ff84015c4c92f28e03756f90859705802d70 100644 (file)
@@ -124,7 +124,6 @@ void irq_ctx_init(int cpu)
 
        irqctx = (union irq_ctx *)&hardirq_stack[cpu * THREAD_SIZE];
        irqctx->tinfo.task              = NULL;
-       irqctx->tinfo.exec_domain       = NULL;
        irqctx->tinfo.cpu               = cpu;
        irqctx->tinfo.preempt_count     = HARDIRQ_OFFSET;
        irqctx->tinfo.addr_limit        = MAKE_MM_SEG(0);
@@ -133,7 +132,6 @@ void irq_ctx_init(int cpu)
 
        irqctx = (union irq_ctx *)&softirq_stack[cpu * THREAD_SIZE];
        irqctx->tinfo.task              = NULL;
-       irqctx->tinfo.exec_domain       = NULL;
        irqctx->tinfo.cpu               = cpu;
        irqctx->tinfo.preempt_count     = 0;
        irqctx->tinfo.addr_limit        = MAKE_MM_SEG(0);
index 0b34f2a704fe1d2fdcf03b49fe37d73a7725ecf7..ab7b56bc054af3d6b39d23dce6398f818f95f408 100644 (file)
@@ -267,19 +267,12 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
 {
        struct sigframe __user *frame;
        int err = 0, sig = ksig->sig;
-       int signal;
 
        frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
 
        if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
                return -EFAULT;
 
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
        err |= setup_sigcontext(&frame->sc, regs, set->sig[0]);
 
        if (_NSIG_WORDS > 1)
@@ -313,7 +306,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set,
 
        /* Set up registers for signal handler */
        regs->regs[15] = (unsigned long) frame;
-       regs->regs[4] = signal; /* Arg for signal handler */
+       regs->regs[4] = sig; /* Arg for signal handler */
        regs->regs[5] = 0;
        regs->regs[6] = (unsigned long) &frame->sc;
 
@@ -342,19 +335,12 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
 {
        struct rt_sigframe __user *frame;
        int err = 0, sig = ksig->sig;
-       int signal;
 
        frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
 
        if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
                return -EFAULT;
 
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
        err |= copy_siginfo_to_user(&frame->info, &ksig->info);
 
        /* Create the ucontext.  */
@@ -392,7 +378,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
 
        /* Set up registers for signal handler */
        regs->regs[15] = (unsigned long) frame;
-       regs->regs[4] = signal; /* Arg for signal handler */
+       regs->regs[4] = sig; /* Arg for signal handler */
        regs->regs[5] = (unsigned long) &frame->info;
        regs->regs[6] = (unsigned long) &frame->uc;
 
index 71993c6a7d94b0f6da895f78d96176de5aa31e14..76122d6cd95f79737f32f5be45c2106ea9d21700 100644 (file)
@@ -385,12 +385,6 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
        if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
                return -EFAULT;
 
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
        err |= setup_sigcontext(&frame->sc, regs, set->sig[0]);
 
        /* Give up earlier as i386, in case */
@@ -441,7 +435,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
         * All edited pointers are subject to NEFF.
         */
        regs->regs[REG_SP] = neff_sign_extend((unsigned long)frame);
-       regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
+       regs->regs[REG_ARG1] = sig; /* Arg for signal handler */
 
         /* FIXME:
            The glibc profiling support for SH-5 needs to be passed a sigcontext
@@ -461,7 +455,7 @@ static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
 
        /* Broken %016Lx */
        pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n",
-                signal, current->comm, current->pid, frame,
+                sig, current->comm, current->pid, frame,
                 regs->pc >> 32, regs->pc & 0xffffffff,
                 DEREF_REG_PR >> 32, DEREF_REG_PR & 0xffffffff);
 
@@ -473,19 +467,12 @@ static int setup_rt_frame(struct ksignal *kig, sigset_t *set,
 {
        struct rt_sigframe __user *frame;
        int err = 0, sig = ksig->sig;
-       int signal;
 
        frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame));
 
        if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
                return -EFAULT;
 
-       signal = current_thread_info()->exec_domain
-               && current_thread_info()->exec_domain->signal_invmap
-               && sig < 32
-               ? current_thread_info()->exec_domain->signal_invmap[sig]
-               : sig;
-
        err |= __put_user(&frame->info, &frame->pinfo);
        err |= __put_user(&frame->uc, &frame->puc);
        err |= copy_siginfo_to_user(&frame->info, &ksig->info);
@@ -542,7 +529,7 @@ static int setup_rt_frame(struct ksignal *kig, sigset_t *set,
         * All edited pointers are subject to NEFF.
         */
        regs->regs[REG_SP] = neff_sign_extend((unsigned long)frame);
-       regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
+       regs->regs[REG_ARG1] = sig; /* Arg for signal handler */
        regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->info;
        regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext;
        regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler);
@@ -550,7 +537,7 @@ static int setup_rt_frame(struct ksignal *kig, sigset_t *set,
        set_fs(USER_DS);
 
        pr_debug("SIG deliver (#%d,%s:%d): sp=%p pc=%08Lx%08Lx link=%08Lx%08Lx\n",
-                signal, current->comm, current->pid, frame,
+                sig, current->comm, current->pid, frame,
                 regs->pc >> 32, regs->pc & 0xffffffff,
                 DEREF_REG_PR >> 32, DEREF_REG_PR & 0xffffffff);