Some kernel functions must not be called holding a specific lock. Doing so could lead to locking problems. Currently these routines call lock_is_held() to check for lock hold followed by WARN_ON. Adding a common lockdep interface will help reduce the duplication of this logic in the rest of the kernel. Add lockdep_assert_not_held() to be used in these functions to detect incorrect calls while holding a lock. lockdep_assert_not_held() provides the opposite functionality of lockdep_assert_held() which is used to assert calls that require holding a specific lock. The need for lockdep_assert_not_held() came up in a discussion on ath10k patch. ath10k_drain_tx() and i915_vma_pin_ww() are examples of functions that can use lockdep_assert_not_held(). Link: https://lore.kernel.org/linux-wireless/871rdmu9z9.fsf@xxxxxxxxxxxxxx/ This patch series adds lockdep_assert_not_held() and uses it in the second patch in ath10k_drain_tx() function. Shuah Khan (2): lockdep: add lockdep_assert_not_held() ath10k: detect conf_mutex held ath10k_drain_tx() calls drivers/net/wireless/ath/ath10k/mac.c | 2 ++ include/linux/lockdep.h | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) -- 2.27.0