From: Rusty Russell <rusty@rustcorp.com.au>

kthreads use keventd, so they inherit its cpus_allowed mask.  Unset
it.  All current users set it explicity anyway, but it's nice to fix.



---

 kernel/kthread.c |    3 +++
 1 files changed, 3 insertions(+)

diff -puN kernel/kthread.c~kthread-affinity-fix kernel/kthread.c
--- 25/kernel/kthread.c~kthread-affinity-fix	2004-02-08 21:30:54.000000000 -0800
+++ 25-akpm/kernel/kthread.c	2004-02-08 21:30:54.000000000 -0800
@@ -44,6 +44,9 @@ static int kthread(void *_create)
 	sigprocmask(SIG_BLOCK, &blocked, NULL);
 	flush_signals(current);
 
+	/* By default we can run anywhere, unlike keventd. */
+	set_cpus_allowed(current, CPU_MASK_ALL);
+
 	/* OK, tell user we're spawned, wait for stop or wakeup */
 	__set_current_state(TASK_INTERRUPTIBLE);
 	complete(&create->started);

_