lockdep: remove macro usage from mark_held_locks()
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Tue, 27 Jan 2009 12:58:08 +0000 (13:58 +0100)
committerIngo Molnar <mingo@elte.hu>
Sat, 14 Feb 2009 22:28:17 +0000 (23:28 +0100)
Now that we have nice numerical relations for the states, remove the macro
magics.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/lockdep.c

index 000d53a..f40d916 100644 (file)
@@ -2099,14 +2099,6 @@ enum mark_type {
 #undef LOCKDEP_STATE
 };
 
-#define MARK_HELD_CASE(__STATE)                                                \
-       case __STATE:                                                   \
-               if (hlock->read)                                        \
-                       usage_bit = LOCK_ENABLED_##__STATE##_READ;      \
-               else                                                    \
-                       usage_bit = LOCK_ENABLED_##__STATE;             \
-               break;
-
 /*
  * Mark all held locks with a usage bit:
  */
@@ -2120,13 +2112,11 @@ mark_held_locks(struct task_struct *curr, enum mark_type mark)
        for (i = 0; i < curr->lockdep_depth; i++) {
                hlock = curr->held_locks + i;
 
-               switch (mark) {
-#define LOCKDEP_STATE(__STATE) MARK_HELD_CASE(__STATE)
-#include "lockdep_states.h"
-#undef LOCKDEP_STATE
-               default:
-                       BUG();
-               }
+               usage_bit = 2 + (mark << 2); /* ENABLED */
+               if (hlock->read)
+                       usage_bit += 1; /* READ */
+
+               BUG_ON(usage_bit >= LOCK_USAGE_STATES);
 
                if (!mark_lock(curr, hlock, usage_bit))
                        return 0;