[PATCH 3.16.y-ckt 113/126] locking: Add WARN_ON_ONCE lock assertion

2016-01-06 Thread Luis Henriques
3.16.7-ckt22 -stable review patch.  If anyone has any objections, please let me 
know.

--

From: Peter Hurley 

commit 9a37110d20c95d1ebf6c04881177fe8f62831db2 upstream.

An interface may need to assert a lock invariant and not flood the
system logs; add a lockdep helper macro equivalent to
lockdep_assert_held() which only WARNs once.

Signed-off-by: Peter Hurley 
Acked-by: Ingo Molnar 
Signed-off-by: Greg Kroah-Hartman 
Signed-off-by: Luis Henriques 
---
 include/linux/lockdep.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 008388f920d7..64c7425afbce 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -362,6 +362,10 @@ extern void lockdep_trace_alloc(gfp_t mask);
WARN_ON(debug_locks && !lockdep_is_held(l));\
} while (0)
 
+#define lockdep_assert_held_once(l)do {\
+   WARN_ON_ONCE(debug_locks && !lockdep_is_held(l));   \
+   } while (0)
+
 #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion)
 
 #else /* !CONFIG_LOCKDEP */
@@ -412,6 +416,7 @@ struct lock_class_key { };
 #define lockdep_depth(tsk) (0)
 
 #define lockdep_assert_held(l) do { (void)(l); } while (0)
+#define lockdep_assert_held_once(l)do { (void)(l); } while (0)
 
 #define lockdep_recursing(tsk) (0)
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3.16.y-ckt 113/126] locking: Add WARN_ON_ONCE lock assertion

2016-01-06 Thread Luis Henriques
3.16.7-ckt22 -stable review patch.  If anyone has any objections, please let me 
know.

--

From: Peter Hurley 

commit 9a37110d20c95d1ebf6c04881177fe8f62831db2 upstream.

An interface may need to assert a lock invariant and not flood the
system logs; add a lockdep helper macro equivalent to
lockdep_assert_held() which only WARNs once.

Signed-off-by: Peter Hurley 
Acked-by: Ingo Molnar 
Signed-off-by: Greg Kroah-Hartman 
Signed-off-by: Luis Henriques 
---
 include/linux/lockdep.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 008388f920d7..64c7425afbce 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -362,6 +362,10 @@ extern void lockdep_trace_alloc(gfp_t mask);
WARN_ON(debug_locks && !lockdep_is_held(l));\
} while (0)
 
+#define lockdep_assert_held_once(l)do {\
+   WARN_ON_ONCE(debug_locks && !lockdep_is_held(l));   \
+   } while (0)
+
 #define lockdep_recursing(tsk) ((tsk)->lockdep_recursion)
 
 #else /* !CONFIG_LOCKDEP */
@@ -412,6 +416,7 @@ struct lock_class_key { };
 #define lockdep_depth(tsk) (0)
 
 #define lockdep_assert_held(l) do { (void)(l); } while (0)
+#define lockdep_assert_held_once(l)do { (void)(l); } while (0)
 
 #define lockdep_recursing(tsk) (0)
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/