[Skiboot] [PATCH 03/34] ccan/list: Add list_empty_nocheck
benh at kernel.crashing.org
Sun Jul 24 09:26:57 AEST 2016
This is the same as list_empty but without the debug checks. This is
useful when wanting to check for an empty list without locks held,
potentially racing with addition/removal, which can be a valid thing
to do under some circumstances.
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
ccan/list/list.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/ccan/list/list.h b/ccan/list/list.h
index 646959e..7cd3a83 100644
@@ -218,6 +218,21 @@ static inline bool list_empty(const struct list_head *h)
+ * list_empty_nocheck - is a list empty?
+ * @h: the list_head
+ * If the list is empty, returns true. This doesn't perform any
+ * debug check for list consistency, so it can be called without
+ * locks, racing with the list being modified. This is ok for
+ * checks where an incorrect result is not an issue (optimized
+ * bail out path for example).
+static inline bool list_empty_nocheck(const struct list_head *h)
+ return h->n.next == &h->n;
* list_del - delete an entry from an (unknown) linked list.
* @n: the list_node to delete from the list.
More information about the Skiboot