Merge branches 'for-3.7/upstream-fixes', 'for-3.8/hidraw', 'for-3.8/i2c-hid', 'for...
[sfrench/cifs-2.6.git] / include / linux / lglock.h
index f01e5f6d1f07a4966927bb7acd5707f8f77904c8..0d24e932db0b62c97337069985f794276a455b83 100644 (file)
 #define br_write_lock(name)    lg_global_lock(name)
 #define br_write_unlock(name)  lg_global_unlock(name)
 
-#define DEFINE_BRLOCK(name)    DEFINE_LGLOCK(name)
+#define DEFINE_BRLOCK(name)            DEFINE_LGLOCK(name)
+#define DEFINE_STATIC_BRLOCK(name)     DEFINE_STATIC_LGLOCK(name)
 
 #ifdef CONFIG_DEBUG_LOCK_ALLOC
 #define LOCKDEP_INIT_MAP lockdep_init_map
-
-#define DEFINE_LGLOCK_LOCKDEP(name)                                    \
- struct lock_class_key name##_lock_key;                                        \
- struct lockdep_map name##_lock_dep_map;                               \
- EXPORT_SYMBOL(name##_lock_dep_map)
-
 #else
 #define LOCKDEP_INIT_MAP(a, b, c, d)
-
-#define DEFINE_LGLOCK_LOCKDEP(name)
 #endif
 
 struct lglock {
@@ -57,11 +50,15 @@ struct lglock {
 };
 
 #define DEFINE_LGLOCK(name)                                            \
-       DEFINE_LGLOCK_LOCKDEP(name);                                    \
-       DEFINE_PER_CPU(arch_spinlock_t, name ## _lock)                  \
+       static DEFINE_PER_CPU(arch_spinlock_t, name ## _lock)           \
        = __ARCH_SPIN_LOCK_UNLOCKED;                                    \
        struct lglock name = { .lock = &name ## _lock }
 
+#define DEFINE_STATIC_LGLOCK(name)                                     \
+       static DEFINE_PER_CPU(arch_spinlock_t, name ## _lock)           \
+       = __ARCH_SPIN_LOCK_UNLOCKED;                                    \
+       static struct lglock name = { .lock = &name ## _lock }
+
 void lg_lock_init(struct lglock *lg, char *name);
 void lg_local_lock(struct lglock *lg);
 void lg_local_unlock(struct lglock *lg);