Provide method for non-essential or non-critical code to warn of invariant errors. CC: Ingo Molnar <mingo@xxxxxxxxxx> CC: Peter Zijlstra <peterz@xxxxxxxxxxxxx> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> --- include/linux/spinlock.h | 1 + include/linux/spinlock_api_smp.h | 1 + include/linux/spinlock_api_up.h | 1 + 3 files changed, 3 insertions(+) diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 3f2867f..8a9aaf1 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -394,6 +394,7 @@ static inline int spin_can_lock(spinlock_t *lock) } #define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock) +#define warn_not_spin_locked(lock) warn_not_raw_spin_locked(&(lock)->rlock) /* * Pull the atomic_t declaration: diff --git a/include/linux/spinlock_api_smp.h b/include/linux/spinlock_api_smp.h index 42dfab8..0ddd499 100644 --- a/include/linux/spinlock_api_smp.h +++ b/include/linux/spinlock_api_smp.h @@ -18,6 +18,7 @@ int in_lock_functions(unsigned long addr); #define assert_raw_spin_locked(x) BUG_ON(!raw_spin_is_locked(x)) +#define warn_not_raw_spin_locked(x) WARN_ON_ONCE(!raw_spin_is_locked(x)) void __lockfunc _raw_spin_lock(raw_spinlock_t *lock) __acquires(lock); void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass) diff --git a/include/linux/spinlock_api_up.h b/include/linux/spinlock_api_up.h index d0d1888..f890f12 100644 --- a/include/linux/spinlock_api_up.h +++ b/include/linux/spinlock_api_up.h @@ -17,6 +17,7 @@ #define in_lock_functions(ADDR) 0 #define assert_raw_spin_locked(lock) do { (void)(lock); } while (0) +#define warn_not_raw_spin_locked(lock) do { (void)(lock); } while (0) /* * In the UP-nondebug case there's no real locking going on, so the -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html