diff options
-rw-r--r-- | kernel/rtmutex.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/rtmutex.c b/kernel/rtmutex.c index 1c4808f..f6b6ebb 100644 --- a/kernel/rtmutex.c +++ b/kernel/rtmutex.c @@ -935,12 +935,12 @@ int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock) /* Subtract 1 from counter unless that drops it to 0 (ie. it was 1) */ if (atomic_add_unless(atomic, -1, 1)) return 0; - migrate_disable(); rt_spin_lock(lock); - if (atomic_dec_and_test(atomic)) + if (atomic_dec_and_test(atomic)){ + migrate_disable(); return 1; + } rt_spin_unlock(lock); - migrate_enable(); return 0; } EXPORT_SYMBOL(atomic_dec_and_spin_lock); |