]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - kernel/locking/mutex.c
Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
[linux.git] / kernel / locking / mutex.c
index 468a9b8422e3909537c386c2b52a57752bd73747..54cc5f9286e93ee708fea396651ff3f53d1dbb1a 100644 (file)
@@ -733,6 +733,9 @@ static noinline void __sched __mutex_unlock_slowpath(struct mutex *lock, unsigne
  */
 void __sched mutex_unlock(struct mutex *lock)
 {
+#ifdef CONFIG_DEBUG_MUTEXES
+       WARN_ON(in_interrupt());
+#endif
 #ifndef CONFIG_DEBUG_LOCK_ALLOC
        if (__mutex_unlock_fast(lock))
                return;
@@ -1091,7 +1094,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
 err_early_kill:
        spin_unlock(&lock->wait_lock);
        debug_mutex_free_waiter(&waiter);
-       mutex_release(&lock->dep_map, 1, ip);
+       mutex_release(&lock->dep_map, ip);
        preempt_enable();
        return ret;
 }
@@ -1225,7 +1228,7 @@ static noinline void __sched __mutex_unlock_slowpath(struct mutex *lock, unsigne
        DEFINE_WAKE_Q(wake_q);
        unsigned long owner;
 
-       mutex_release(&lock->dep_map, 1, ip);
+       mutex_release(&lock->dep_map, ip);
 
        /*
         * Release the lock before (potentially) taking the spinlock such that
@@ -1413,6 +1416,7 @@ int __sched mutex_trylock(struct mutex *lock)
 
 #ifdef CONFIG_DEBUG_MUTEXES
        DEBUG_LOCKS_WARN_ON(lock->magic != lock);
+       WARN_ON(in_interrupt());
 #endif
 
        locked = __mutex_trylock(lock);