jump label: Add a WARN() if jump label key count goes negative
authorJason Baron <jbaron@redhat.com>
Tue, 21 Feb 2012 20:02:53 +0000 (15:02 -0500)
committerIngo Molnar <mingo@elte.hu>
Wed, 22 Feb 2012 06:59:39 +0000 (07:59 +0100)
The count on a jump label key should never go negative. Add a
WARN() to check for this condition.

Signed-off-by: Jason Baron <jbaron@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>
Cc: rostedt@goodmis.org
Cc: mathieu.desnoyers@efficios.com
Cc: davem@davemloft.net
Cc: ddaney.cavm@gmail.com
Cc: a.p.zijlstra@chello.nl
Link: http://lkml.kernel.org/r/3c68556121be4d1920417a3fe367da1ec38246b4.1329851692.git.jbaron@redhat.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/jump_label.c

index 01d3b70fc98a346c3bf619016f12f1a7ed5d897a..ed9654fd7d2723be2ef664c6df48fa1c199206bc 100644 (file)
@@ -76,8 +76,11 @@ EXPORT_SYMBOL_GPL(jump_label_inc);
 static void __jump_label_dec(struct jump_label_key *key,
                unsigned long rate_limit, struct delayed_work *work)
 {
-       if (!atomic_dec_and_mutex_lock(&key->enabled, &jump_label_mutex))
+       if (!atomic_dec_and_mutex_lock(&key->enabled, &jump_label_mutex)) {
+               WARN(atomic_read(&key->enabled) < 0,
+                    "jump label: negative count!\n");
                return;
+       }
 
        if (rate_limit) {
                atomic_inc(&key->enabled);