Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze
[deliverable/linux.git] / kernel / rtmutex.c
index 255e1662acdb496b77c50205daa455d404f7749b..5e8d9cce7470dad6fd2427fd6c2349ddea6aeb9e 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);
        }
This page took 0.035067 seconds and 5 git commands to generate.