]> nv-tegra.nvidia Code Review - linux-2.6.git/commitdiff
[PATCH] BUG() if setscheduler is called from interrupt context
authorSteven Rostedt <rostedt@goodmis.org>
Tue, 27 Jun 2006 09:54:44 +0000 (02:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 28 Jun 2006 00:32:46 +0000 (17:32 -0700)
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

To prevent this from happening in the future, this patch adds a
BUG_ON(in_interrupt()) in that function.  (Thanks to akpm <aka.  Andrew
Morton> for this suggestion).

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

index 19c0d5d16fef1b84c310a54ff0f0869072f7d2a8..15abf08332454a8eea7d2d576ccf2c2577c7b296 100644 (file)
@@ -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());
        /* double check policy once rq lock held */
        if (policy < 0)