git: a1be7978f187 - main - netisr: avoid VNET recursion warning in netisr_register()
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 17 Jan 2025 02:31:55 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=a1be7978f1879313c141882a1e0812b468dead57
commit a1be7978f1879313c141882a1e0812b468dead57
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-01-17 02:31:15 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2025-01-17 02:31:15 +0000
netisr: avoid VNET recursion warning in netisr_register()
While here, move some assertions to the top of the function.
---
sys/net/netisr.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/sys/net/netisr.c b/sys/net/netisr.c
index 4ae1aa9ab89d..e9b8fa4d833c 100644
--- a/sys/net/netisr.c
+++ b/sys/net/netisr.c
@@ -395,6 +395,9 @@ netisr_register(const struct netisr_handler *nhp)
/*
* Test that the requested registration is valid.
*/
+ CURVNET_ASSERT_SET();
+ KASSERT(IS_DEFAULT_VNET(curvnet), ("%s: curvnet %p is not vnet0 %p",
+ __func__, curvnet, vnet0));
KASSERT(nhp->nh_name != NULL,
("%s: nh_name NULL for %u", __func__, proto));
KASSERT(nhp->nh_handler != NULL,
@@ -454,15 +457,12 @@ netisr_register(const struct netisr_handler *nhp)
npwp->nw_qlimit = netisr_proto[proto].np_qlimit;
}
+ V_netisr_enable[proto] = 1;
#ifdef VIMAGE
- /*
- * Test that we are in vnet0 and have a curvnet set.
- */
- KASSERT(curvnet != NULL, ("%s: curvnet is NULL", __func__));
- KASSERT(IS_DEFAULT_VNET(curvnet), ("%s: curvnet %p is not vnet0 %p",
- __func__, curvnet, vnet0));
VNET_LIST_RLOCK_NOSLEEP();
VNET_FOREACH(vnet_iter) {
+ if (vnet_iter == curvnet)
+ continue;
CURVNET_SET(vnet_iter);
V_netisr_enable[proto] = 1;
CURVNET_RESTORE();