patch-2.1.37 linux/arch/i386/kernel/signal.c

Next file: linux/arch/i386/kernel/smp.c
Previous file: linux/arch/i386/kernel/setup.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.36/linux/arch/i386/kernel/signal.c linux/arch/i386/kernel/signal.c
@@ -318,6 +318,14 @@
 	unsigned long signr;
 	struct sigaction * sa;
 
+	/*
+	 *    We want the common case to go fast, which
+	 * is why we may in certain cases get here from
+	 * kernel mode. Just return without doing anything
+	 * if so.
+	 */
+	if ((regs->xcs & 3) != 3)
+		return 1;
 	mask = ~current->blocked;
 	while ((signr = current->signal & mask)) {
 		/*

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov