Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[pandora-kernel.git] / kernel / rtmutex.c
index 255e166..5e8d9cc 100644 (file)
@@ -579,6 +579,7 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
                    struct rt_mutex_waiter *waiter)
 {
        int ret = 0;
+       int was_disabled;
 
        for (;;) {
                /* Try to acquire the lock: */
@@ -601,10 +602,17 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state,
 
                raw_spin_unlock(&lock->wait_lock);
 
+               was_disabled = irqs_disabled();
+               if (was_disabled)
+                       local_irq_enable();
+
                debug_rt_mutex_print_deadlock(waiter);
 
                schedule_rt_mutex(lock);
 
+               if (was_disabled)
+                       local_irq_disable();
+
                raw_spin_lock(&lock->wait_lock);
                set_current_state(state);
        }