patch-1.3.65 linux/arch/i386/kernel/signal.c
Next file: linux/arch/i386/kernel/smp.c
Previous file: linux/arch/i386/boot/compressed/Makefile
Back to the patch index
Back to the overall index
-  Lines: 19
 -  Date:
Sat Feb 17 08:07:01 1996
 -  Orig file: 
v1.3.64/linux/arch/i386/kernel/signal.c
 -  Orig date: 
Wed Dec 27 09:12:12 1995
 
diff -u --recursive --new-file v1.3.64/linux/arch/i386/kernel/signal.c linux/arch/i386/kernel/signal.c
@@ -152,10 +152,16 @@
 	struct sigaction * sa;
 
 	while ((signr = current->signal & mask)) {
+		/*
+		 *	This stops gcc flipping out. Otherwise the assembler
+		 *	including volatiles for the inline function to get
+		 *	current combined with this gets it confused.
+		 */
+	        struct task_struct *t=current;
 		__asm__("bsf %3,%1\n\t"
 			"btrl %1,%0"
-			:"=m" (current->signal),"=r" (signr)
-			:"0" (current->signal), "1" (signr));
+			:"=m" (t->signal),"=r" (signr)
+			:"0" (t->signal), "1" (signr));
 		sa = current->sig->action + signr;
 		signr++;
 		if ((current->flags & PF_PTRACED) && signr != SIGKILL) {
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this