git: 37f604b49d4a - main - vnet: make VNET_FOREACH() always be a loop
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 07 Jul 2022 08:44:55 UTC
The branch main has been updated by kp:
URL: https://cgit.FreeBSD.org/src/commit/?id=37f604b49d4aa1d27ad8d034ec33007bc8013671
commit 37f604b49d4aa1d27ad8d034ec33007bc8013671
Author: Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2022-07-06 09:13:52 +0000
Commit: Kristof Provost <kp@FreeBSD.org>
CommitDate: 2022-07-07 07:52:21 +0000
vnet: make VNET_FOREACH() always be a loop
VNET_FOREACH() is a LIST_FOREACH if VIMAGE is set, but empty if it's
not. This means that users of the macro couldn't use 'continue' or
'break' as one would expect of a loop.
Change VNET_FOREACH() to be a loop in all cases (although one that is
fixed to one iteration if VIMAGE is not set).
Reviewed by: karels, melifaro, glebius
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D35739
---
sys/net/vnet.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sys/net/vnet.h b/sys/net/vnet.h
index 48c2536be8b4..afb6857bbccc 100644
--- a/sys/net/vnet.h
+++ b/sys/net/vnet.h
@@ -414,7 +414,7 @@ do { \
#define VNET_LIST_RUNLOCK()
#define VNET_LIST_RUNLOCK_NOSLEEP()
#define VNET_ITERATOR_DECL(arg)
-#define VNET_FOREACH(arg)
+#define VNET_FOREACH(arg) for (int _vn = 0; _vn == 0; _vn++)
#define IS_DEFAULT_VNET(arg) 1
#define CRED_TO_VNET(cr) NULL