From: Steven Rostedt Date: Tue, 27 Jun 2006 09:54:44 +0000 (-0700) Subject: [PATCH] BUG() if setscheduler is called from interrupt context X-Git-Tag: v2.6.18-rc1~502 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=66e5393a78b3fcca63e7748e38221dcca61c4aab;p=~emulex%2Finfiniband.git [PATCH] BUG() if setscheduler is called from interrupt context Thomas Gleixner is adding the call to a rtmutex function in setscheduler. This call grabs a spin_lock that is not always protected by interrupts disabled. So this means that setscheduler cant be called from interrupt context. To prevent this from happening in the future, this patch adds a BUG_ON(in_interrupt()) in that function. (Thanks to akpm for this suggestion). Signed-off-by: Steven Rostedt Cc: Ingo Molnar Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/sched.c b/kernel/sched.c index 19c0d5d16fe..15abf083324 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3862,6 +3862,8 @@ int sched_setscheduler(struct task_struct *p, int policy, unsigned long flags; runqueue_t *rq; + /* may grab non-irq protected spin_locks */ + BUG_ON(in_interrupt()); recheck: /* double check policy once rq lock held */ if (policy < 0)