2013-12-21 01:39:20 +00:00
|
|
|
From cf189cc2685cbe22602cac460a75debb781e5cdb Mon Sep 17 00:00:00 2001
|
|
|
|
From: Nicholas Mc Guire <der.herr@hofr.at>
|
|
|
|
Date: Fri, 29 Nov 2013 00:19:41 -0500
|
|
|
|
Subject: [PATCH] migrate_disable pushd down in atomic_dec_and_spin_lock
|
2014-01-15 02:32:05 +00:00
|
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/3.12/patches-3.12.6-rt9.tar.xz
|
2013-12-21 01:39:20 +00:00
|
|
|
|
|
|
|
Signed-off-by: Nicholas Mc Guire <der.herr@hofr.at>
|
|
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
|
|
---
|
|
|
|
kernel/rtmutex.c | 6 +++---
|
|
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
|
|
|
|
--- a/kernel/rtmutex.c
|
|
|
|
+++ b/kernel/rtmutex.c
|
|
|
|
@@ -935,12 +935,12 @@ int atomic_dec_and_spin_lock(atomic_t *a
|
|
|
|
/* 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);
|