Merge branch 'sh/urgent' into sh-latest
authorPaul Mundt <lethal@linux-sh.org>
Tue, 10 Jan 2012 07:37:52 +0000 (16:37 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 10 Jan 2012 07:37:52 +0000 (16:37 +0900)
arch/sh/kernel/cpu/sh4/sq.c
arch/sh/kernel/entry-common.S
arch/sh/kernel/signal_32.c
arch/sh/kernel/signal_64.c

index a8140f0bbf6cd32d83d6f3ad37949190b05c755f..0a47bd3e7bee1b20e94fa64a323319ae4dc26a54 100644 (file)
@@ -337,7 +337,7 @@ static struct kobj_type ktype_percpu_entry = {
        .default_attrs  = sq_sysfs_attrs,
 };
 
-static int __devinit sq_dev_add(struct device *dev)
+static int sq_dev_add(struct device *dev, struct subsys_interface *sif)
 {
        unsigned int cpu = dev->id;
        struct kobject *kobj;
@@ -355,7 +355,7 @@ static int __devinit sq_dev_add(struct device *dev)
        return error;
 }
 
-static int __devexit sq_dev_remove(struct device *dev)
+static int sq_dev_remove(struct device *dev, struct subsys_interface *sif)
 {
        unsigned int cpu = dev->id;
        struct kobject *kobj = sq_kobject[cpu];
@@ -365,10 +365,10 @@ static int __devexit sq_dev_remove(struct device *dev)
 }
 
 static struct subsys_interface sq_interface = {
-       .name           = "sq"
+       .name           = "sq",
        .subsys         = &cpu_subsys,
        .add_dev        = sq_dev_add,
-       .remove_dev     = __devexit_p(sq_dev_remove),
+       .remove_dev     = sq_dev_remove,
 };
 
 static int __init sq_api_init(void)
index 2b15ae60c3a0257ed1ea48b34da0044c6a4bfaf6..f67601cb3f1f47da13a49ae4948021800b9a2f4d 100644 (file)
@@ -145,6 +145,7 @@ work_notifysig:
         mov    r15, r4
        mov     r12, r5         ! set arg1(save_r0)
        mov     r0, r6
+       sti
        mov.l   2f, r1
        mov.l   3f, r0
        jmp     @r1
index 579cd2ca358d8b786fa6c38e109238c5685807e2..a7a55ed43a596ee3b372efaa849d19b8c10b3bfc 100644 (file)
@@ -588,9 +588,6 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
        if (!user_mode(regs))
                return;
 
-       if (try_to_freeze())
-               goto no_signal;
-
        if (current_thread_info()->status & TS_RESTORE_SIGMASK)
                oldset = &current->saved_sigmask;
        else
@@ -618,7 +615,6 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
                return;
        }
 
-no_signal:
        /* Did we come from a system call? */
        if (regs->tra >= 0) {
                /* Restart the system call - no handlers present */
index 5a9f1f10ebf4b359f573a35f3e70ea34b88fc388..6b5603fe274bdbca92a94b15331553388dc2488a 100644 (file)
@@ -98,9 +98,6 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
        if (!user_mode(regs))
                return 1;
 
-       if (try_to_freeze())
-               goto no_signal;
-
        if (current_thread_info()->status & TS_RESTORE_SIGMASK)
                oldset = &current->saved_sigmask;
        else if (!oldset)
@@ -125,7 +122,6 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
                }
        }
 
-no_signal:
        /* Did we come from a system call? */
        if (regs->syscall_nr >= 0) {
                /* Restart the system call - no handlers present */