locking/rtmutex: Only warn once on a trylock from bad context
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Fri, 27 May 2016 13:47:18 +0000 (15:47 +0200)
committerIngo Molnar <mingo@kernel.org>
Wed, 8 Jun 2016 12:22:00 +0000 (14:22 +0200)
One warning should be enough to get one motivated to fix this. It is
possible that this happens more than once and that starts flooding the
output. Later the prints will be suppressed so we only get half of it.
Depending on the console system used it might not be helpful.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1464356838-1755-1-git-send-email-bigeasy@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/locking/rtmutex.c

index 3e746607abe5230bb9c650957582669c085d9a90..1ec0f48962b33dce424d4d3f491c6a1fd76ba13d 100644 (file)
@@ -1478,7 +1478,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_timed_lock);
  */
 int __sched rt_mutex_trylock(struct rt_mutex *lock)
 {
-       if (WARN_ON(in_irq() || in_nmi() || in_serving_softirq()))
+       if (WARN_ON_ONCE(in_irq() || in_nmi() || in_serving_softirq()))
                return 0;
 
        return rt_mutex_fasttrylock(lock, rt_mutex_slowtrylock);