sched: Fix kthread_bind() by moving the body of kthread_bind() to sched.c
authorMike Galbraith <efault@gmx.de>
Thu, 29 Oct 2009 10:48:30 +0000 (11:48 +0100)
committerIngo Molnar <mingo@elte.hu>
Tue, 3 Nov 2009 06:25:00 +0000 (07:25 +0100)
commitb84ff7d6f1b7f8a43414e74d972ec4c8f3361db4
tree7e8db08b8dd7d28780f3d08466928c907e5e0440
parent6b9de613ae9c79b637e070136585dde029578065
sched: Fix kthread_bind() by moving the body of kthread_bind() to sched.c

Eric Paris reported that commit
f685ceacab07d3f6c236f04803e2f2f0dbcc5afb causes boot time
PREEMPT_DEBUG complaints.

 [    4.590699] BUG: using smp_processor_id() in preemptible [00000000] code: rmmod/1314
 [    4.593043] caller is task_hot+0x86/0xd0

Since kthread_bind() messes with scheduler internals, move the
body to sched.c, and lock the runqueue.

Reported-by: Eric Paris <eparis@redhat.com>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Tested-by: Eric Paris <eparis@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1256813310.7574.3.camel@marge.simson.net>
[ v2: fix !SMP build and clean up ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/kthread.c
kernel/sched.c