Blob Blame History Raw
Subject: locking/lockdep: Add lockdep_assert_irqs_enabled/disabled_nonrt()
From: Mike Galbraith <efault@gmx.de>
Date: Tue Nov 21 09:11:42 CET 2017
Patch-mainline: Never, -RT specific
References: SLE Realtime Extension

Signed-off-by: Mike Galbraith <efaulth@gmx.de>
Acked-by: Mike Galbraith <mgalbraith@suse.de>
---
 include/linux/lockdep.h |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -599,11 +599,27 @@ do {									\
 			  "IRQs not disabled as expected\n");		\
 	} while (0)
 
+#define lockdep_assert_irqs_enabled_nonrt()	do {			\
+		WARN_ONCE(debug_locks && !current->lockdep_recursion &&	\
+			  !current->hardirqs_enabled &&			\
+			  !IS_ENABLED(CONFIG_PREEMPT_RT_BASE),		\
+			  "IRQs not enabled as expected\n");		\
+	} while (0)
+
+#define lockdep_assert_irqs_disabled_nonrt()	do {			\
+		WARN_ONCE(debug_locks && !current->lockdep_recursion &&	\
+			  current->hardirqs_enabled &&			\
+			  !IS_ENABLED(CONFIG_PREEMPT_RT_BASE),		\
+			  "IRQs not disabled as expected\n");		\
+	} while (0)
+
 #else
 # define might_lock(lock) do { } while (0)
 # define might_lock_read(lock) do { } while (0)
 # define lockdep_assert_irqs_enabled() do { } while (0)
 # define lockdep_assert_irqs_disabled() do { } while (0)
+# define lockdep_assert_irqs_enabled_nonrt() do { } while (0)
+# define lockdep_assert_irqs_disabled_nonrt() do { } while (0)
 #endif
 
 #ifdef CONFIG_LOCKDEP