aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <dumbbell@FreeBSD.org>2023-12-08 21:53:21 +0000
committerJean-Sébastien Pédron <dumbbell@FreeBSD.org>2023-12-13 18:18:46 +0000
commitb723bcd05a991d446491e914f2b9f35e66227398 (patch)
tree23f1b0829d659a4c8f5caa17ab3d1f7fb9fc8972
parent80446fc7b5e5d22e2bac28bc0474dbe2fec83e43 (diff)
downloadsrc-b723bcd05a991d446491e914f2b9f35e66227398.tar.gz
src-b723bcd05a991d446491e914f2b9f35e66227398.zip
linuxkpi: Add `list_for_each_prev_safe()` in <linux/list.h>
[Why] The amdgpu DRM driver started to use it in Linux 5.18. Reviewed by: manu Approved by: manu Differential Revision: https://reviews.freebsd.org/D43021
-rw-r--r--sys/compat/linuxkpi/common/include/linux/list.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/list.h b/sys/compat/linuxkpi/common/include/linux/list.h
index a27abedc55b0..ca103a670109 100644
--- a/sys/compat/linuxkpi/common/include/linux/list.h
+++ b/sys/compat/linuxkpi/common/include/linux/list.h
@@ -225,6 +225,11 @@ list_del_init(struct list_head *entry)
#define list_for_each_prev(p, h) for (p = (h)->prev; p != (h); p = (p)->prev)
+#define list_for_each_prev_safe(p, n, h) \
+ for (p = (h)->prev, n = (p)->prev; \
+ p != (h); \
+ p = n, n = (p)->prev)
+
#define list_for_each_entry_from_reverse(p, h, field) \
for (; &p->field != (h); \
p = list_prev_entry(p, field))