|
@@ -20,51 +20,10 @@ struct lockdep_map;
|
|
|
#include <linux/stacktrace.h>
|
|
|
|
|
|
/*
|
|
|
- * Lock-class usage-state bits:
|
|
|
+ * We'd rather not expose kernel/lockdep_states.h this wide, but we do need
|
|
|
+ * the total number of states... :-(
|
|
|
*/
|
|
|
-enum lock_usage_bit
|
|
|
-{
|
|
|
- LOCK_USED = 0,
|
|
|
- LOCK_USED_IN_HARDIRQ,
|
|
|
- LOCK_USED_IN_SOFTIRQ,
|
|
|
- LOCK_USED_IN_RECLAIM_FS,
|
|
|
- LOCK_ENABLED_SOFTIRQ,
|
|
|
- LOCK_ENABLED_HARDIRQ,
|
|
|
- LOCK_ENABLED_RECLAIM_FS,
|
|
|
- LOCK_USED_IN_HARDIRQ_READ,
|
|
|
- LOCK_USED_IN_SOFTIRQ_READ,
|
|
|
- LOCK_USED_IN_RECLAIM_FS_READ,
|
|
|
- LOCK_ENABLED_SOFTIRQ_READ,
|
|
|
- LOCK_ENABLED_HARDIRQ_READ,
|
|
|
- LOCK_ENABLED_RECLAIM_FS_READ,
|
|
|
- LOCK_USAGE_STATES
|
|
|
-};
|
|
|
-
|
|
|
-/*
|
|
|
- * Usage-state bitmasks:
|
|
|
- */
|
|
|
-#define LOCKF_USED (1 << LOCK_USED)
|
|
|
-#define LOCKF_USED_IN_HARDIRQ (1 << LOCK_USED_IN_HARDIRQ)
|
|
|
-#define LOCKF_USED_IN_SOFTIRQ (1 << LOCK_USED_IN_SOFTIRQ)
|
|
|
-#define LOCKF_USED_IN_RECLAIM_FS (1 << LOCK_USED_IN_RECLAIM_FS)
|
|
|
-#define LOCKF_ENABLED_HARDIRQ (1 << LOCK_ENABLED_HARDIRQ)
|
|
|
-#define LOCKF_ENABLED_SOFTIRQ (1 << LOCK_ENABLED_SOFTIRQ)
|
|
|
-#define LOCKF_ENABLED_RECLAIM_FS (1 << LOCK_ENABLED_RECLAIM_FS)
|
|
|
-
|
|
|
-#define LOCKF_ENABLED_IRQ (LOCKF_ENABLED_HARDIRQ | LOCKF_ENABLED_SOFTIRQ)
|
|
|
-#define LOCKF_USED_IN_IRQ (LOCKF_USED_IN_HARDIRQ | LOCKF_USED_IN_SOFTIRQ)
|
|
|
-
|
|
|
-#define LOCKF_USED_IN_HARDIRQ_READ (1 << LOCK_USED_IN_HARDIRQ_READ)
|
|
|
-#define LOCKF_USED_IN_SOFTIRQ_READ (1 << LOCK_USED_IN_SOFTIRQ_READ)
|
|
|
-#define LOCKF_USED_IN_RECLAIM_FS_READ (1 << LOCK_USED_IN_RECLAIM_FS_READ)
|
|
|
-#define LOCKF_ENABLED_HARDIRQ_READ (1 << LOCK_ENABLED_HARDIRQ_READ)
|
|
|
-#define LOCKF_ENABLED_SOFTIRQ_READ (1 << LOCK_ENABLED_SOFTIRQ_READ)
|
|
|
-#define LOCKF_ENABLED_RECLAIM_FS_READ (1 << LOCK_ENABLED_RECLAIM_FS_READ)
|
|
|
-
|
|
|
-#define LOCKF_ENABLED_IRQ_READ \
|
|
|
- (LOCKF_ENABLED_HARDIRQ_READ | LOCKF_ENABLED_SOFTIRQ_READ)
|
|
|
-#define LOCKF_USED_IN_IRQ_READ \
|
|
|
- (LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
|
|
|
+#define XXX_LOCK_USAGE_STATES (1+3*4)
|
|
|
|
|
|
#define MAX_LOCKDEP_SUBCLASSES 8UL
|
|
|
|
|
@@ -105,7 +64,7 @@ struct lock_class {
|
|
|
* IRQ/softirq usage tracking bits:
|
|
|
*/
|
|
|
unsigned long usage_mask;
|
|
|
- struct stack_trace usage_traces[LOCK_USAGE_STATES];
|
|
|
+ struct stack_trace usage_traces[XXX_LOCK_USAGE_STATES];
|
|
|
|
|
|
/*
|
|
|
* These fields represent a directed graph of lock dependencies,
|