diff options
author | Yong Zhang <yong.zhang0@gmail.com> | 2012-04-16 03:01:55 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-02-19 02:43:35 -0500 |
commit | 9fb1b90ce0a847a8cc9492a6c1f347b5be1f33ff (patch) | |
tree | eb877b655afd1cf303677edadb41086c798030fd /lib | |
parent | 6617feca15c68aad12f4a1edd8d8e2ef8d5b4ae5 (diff) |
lockdep: Selftest: convert spinlock to raw spinlock
To make the lockdep selftest working on RT we need to convert the
spinlock tests to a raw spinlock. Otherwise we cannot run the irq
context checks. For mainline this is just annotational as spinlocks
are mapped to raw_spinlocks anyway.
Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Link: http://lkml.kernel.org/r/1334559716-18447-2-git-send-email-yong.zhang0@gmail.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/locking-selftest.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/lib/locking-selftest.c b/lib/locking-selftest.c index 7aae0f2a5e0a..c3eb261a7df3 100644 --- a/lib/locking-selftest.c +++ b/lib/locking-selftest.c | |||
@@ -47,10 +47,10 @@ __setup("debug_locks_verbose=", setup_debug_locks_verbose); | |||
47 | * Normal standalone locks, for the circular and irq-context | 47 | * Normal standalone locks, for the circular and irq-context |
48 | * dependency tests: | 48 | * dependency tests: |
49 | */ | 49 | */ |
50 | static DEFINE_SPINLOCK(lock_A); | 50 | static DEFINE_RAW_SPINLOCK(lock_A); |
51 | static DEFINE_SPINLOCK(lock_B); | 51 | static DEFINE_RAW_SPINLOCK(lock_B); |
52 | static DEFINE_SPINLOCK(lock_C); | 52 | static DEFINE_RAW_SPINLOCK(lock_C); |
53 | static DEFINE_SPINLOCK(lock_D); | 53 | static DEFINE_RAW_SPINLOCK(lock_D); |
54 | 54 | ||
55 | static DEFINE_RWLOCK(rwlock_A); | 55 | static DEFINE_RWLOCK(rwlock_A); |
56 | static DEFINE_RWLOCK(rwlock_B); | 56 | static DEFINE_RWLOCK(rwlock_B); |
@@ -73,12 +73,12 @@ static DECLARE_RWSEM(rwsem_D); | |||
73 | * but X* and Y* are different classes. We do this so that | 73 | * but X* and Y* are different classes. We do this so that |
74 | * we do not trigger a real lockup: | 74 | * we do not trigger a real lockup: |
75 | */ | 75 | */ |
76 | static DEFINE_SPINLOCK(lock_X1); | 76 | static DEFINE_RAW_SPINLOCK(lock_X1); |
77 | static DEFINE_SPINLOCK(lock_X2); | 77 | static DEFINE_RAW_SPINLOCK(lock_X2); |
78 | static DEFINE_SPINLOCK(lock_Y1); | 78 | static DEFINE_RAW_SPINLOCK(lock_Y1); |
79 | static DEFINE_SPINLOCK(lock_Y2); | 79 | static DEFINE_RAW_SPINLOCK(lock_Y2); |
80 | static DEFINE_SPINLOCK(lock_Z1); | 80 | static DEFINE_RAW_SPINLOCK(lock_Z1); |
81 | static DEFINE_SPINLOCK(lock_Z2); | 81 | static DEFINE_RAW_SPINLOCK(lock_Z2); |
82 | 82 | ||
83 | static DEFINE_RWLOCK(rwlock_X1); | 83 | static DEFINE_RWLOCK(rwlock_X1); |
84 | static DEFINE_RWLOCK(rwlock_X2); | 84 | static DEFINE_RWLOCK(rwlock_X2); |
@@ -107,10 +107,10 @@ static DECLARE_RWSEM(rwsem_Z2); | |||
107 | */ | 107 | */ |
108 | #define INIT_CLASS_FUNC(class) \ | 108 | #define INIT_CLASS_FUNC(class) \ |
109 | static noinline void \ | 109 | static noinline void \ |
110 | init_class_##class(spinlock_t *lock, rwlock_t *rwlock, struct mutex *mutex, \ | 110 | init_class_##class(raw_spinlock_t *lock, rwlock_t *rwlock, \ |
111 | struct rw_semaphore *rwsem) \ | 111 | struct mutex *mutex, struct rw_semaphore *rwsem)\ |
112 | { \ | 112 | { \ |
113 | spin_lock_init(lock); \ | 113 | raw_spin_lock_init(lock); \ |
114 | rwlock_init(rwlock); \ | 114 | rwlock_init(rwlock); \ |
115 | mutex_init(mutex); \ | 115 | mutex_init(mutex); \ |
116 | init_rwsem(rwsem); \ | 116 | init_rwsem(rwsem); \ |
@@ -168,10 +168,10 @@ static void init_shared_classes(void) | |||
168 | * Shortcuts for lock/unlock API variants, to keep | 168 | * Shortcuts for lock/unlock API variants, to keep |
169 | * the testcases compact: | 169 | * the testcases compact: |
170 | */ | 170 | */ |
171 | #define L(x) spin_lock(&lock_##x) | 171 | #define L(x) raw_spin_lock(&lock_##x) |
172 | #define U(x) spin_unlock(&lock_##x) | 172 | #define U(x) raw_spin_unlock(&lock_##x) |
173 | #define LU(x) L(x); U(x) | 173 | #define LU(x) L(x); U(x) |
174 | #define SI(x) spin_lock_init(&lock_##x) | 174 | #define SI(x) raw_spin_lock_init(&lock_##x) |
175 | 175 | ||
176 | #define WL(x) write_lock(&rwlock_##x) | 176 | #define WL(x) write_lock(&rwlock_##x) |
177 | #define WU(x) write_unlock(&rwlock_##x) | 177 | #define WU(x) write_unlock(&rwlock_##x) |
@@ -911,7 +911,7 @@ GENERATE_PERMUTATIONS_3_EVENTS(irq_read_recursion_soft) | |||
911 | 911 | ||
912 | #define I2(x) \ | 912 | #define I2(x) \ |
913 | do { \ | 913 | do { \ |
914 | spin_lock_init(&lock_##x); \ | 914 | raw_spin_lock_init(&lock_##x); \ |
915 | rwlock_init(&rwlock_##x); \ | 915 | rwlock_init(&rwlock_##x); \ |
916 | mutex_init(&mutex_##x); \ | 916 | mutex_init(&mutex_##x); \ |
917 | init_rwsem(&rwsem_##x); \ | 917 | init_rwsem(&rwsem_##x); \ |