patch-2.3.38 linux/kernel/sched.c

Next file: linux/lib/string.c
Previous file: linux/kernel/ksyms.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.37/linux/kernel/sched.c linux/kernel/sched.c
@@ -673,7 +673,7 @@
 #endif
 		p = curr->task;
 		state = p->state;
-		if (state & mode) {
+		if (state & (mode & ~TASK_EXCLUSIVE)) {
 #if WAITQUEUE_DEBUG
 			curr->__waker = (long)__builtin_return_address(0);
 #endif
@@ -681,7 +681,7 @@
 				wake_up_process_synchronous(p);
 			else
 				wake_up_process(p);
-			if (state & TASK_EXCLUSIVE)
+			if (state & mode & TASK_EXCLUSIVE)
 				break;
 		}
 	}

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)