Prechádzať zdrojové kódy

Merge branch 'sh/urgent' into sh-latest

Paul Mundt 13 rokov pred
rodič
commit
7a73c81ec3

+ 4 - 4
arch/sh/kernel/cpu/sh4/sq.c

@@ -337,7 +337,7 @@ static struct kobj_type ktype_percpu_entry = {
 	.default_attrs	= sq_sysfs_attrs,
 	.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;
 	unsigned int cpu = dev->id;
 	struct kobject *kobj;
 	struct kobject *kobj;
@@ -355,7 +355,7 @@ static int __devinit sq_dev_add(struct device *dev)
 	return error;
 	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;
 	unsigned int cpu = dev->id;
 	struct kobject *kobj = sq_kobject[cpu];
 	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 = {
 static struct subsys_interface sq_interface = {
-	.name		= "sq"
+	.name		= "sq",
 	.subsys		= &cpu_subsys,
 	.subsys		= &cpu_subsys,
 	.add_dev	= sq_dev_add,
 	.add_dev	= sq_dev_add,
-	.remove_dev	= __devexit_p(sq_dev_remove),
+	.remove_dev	= sq_dev_remove,
 };
 };
 
 
 static int __init sq_api_init(void)
 static int __init sq_api_init(void)

+ 1 - 0
arch/sh/kernel/entry-common.S

@@ -145,6 +145,7 @@ work_notifysig:
 	 mov	r15, r4
 	 mov	r15, r4
 	mov	r12, r5		! set arg1(save_r0)
 	mov	r12, r5		! set arg1(save_r0)
 	mov	r0, r6
 	mov	r0, r6
+	sti
 	mov.l	2f, r1
 	mov.l	2f, r1
 	mov.l	3f, r0
 	mov.l	3f, r0
 	jmp	@r1
 	jmp	@r1

+ 0 - 4
arch/sh/kernel/signal_32.c

@@ -588,9 +588,6 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
 	if (!user_mode(regs))
 	if (!user_mode(regs))
 		return;
 		return;
 
 
-	if (try_to_freeze())
-		goto no_signal;
-
 	if (current_thread_info()->status & TS_RESTORE_SIGMASK)
 	if (current_thread_info()->status & TS_RESTORE_SIGMASK)
 		oldset = &current->saved_sigmask;
 		oldset = &current->saved_sigmask;
 	else
 	else
@@ -618,7 +615,6 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
 		return;
 		return;
 	}
 	}
 
 
-no_signal:
 	/* Did we come from a system call? */
 	/* Did we come from a system call? */
 	if (regs->tra >= 0) {
 	if (regs->tra >= 0) {
 		/* Restart the system call - no handlers present */
 		/* Restart the system call - no handlers present */

+ 0 - 4
arch/sh/kernel/signal_64.c

@@ -98,9 +98,6 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset)
 	if (!user_mode(regs))
 	if (!user_mode(regs))
 		return 1;
 		return 1;
 
 
-	if (try_to_freeze())
-		goto no_signal;
-
 	if (current_thread_info()->status & TS_RESTORE_SIGMASK)
 	if (current_thread_info()->status & TS_RESTORE_SIGMASK)
 		oldset = &current->saved_sigmask;
 		oldset = &current->saved_sigmask;
 	else if (!oldset)
 	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? */
 	/* Did we come from a system call? */
 	if (regs->syscall_nr >= 0) {
 	if (regs->syscall_nr >= 0) {
 		/* Restart the system call - no handlers present */
 		/* Restart the system call - no handlers present */