git: 6ff4cac2ee9e - main - ifnet: initial if_grow() shall always succeed
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Dec 2021 17:32:47 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=6ff4cac2ee9ee74911b538a67337bf510c4cffe4
commit 6ff4cac2ee9ee74911b538a67337bf510c4cffe4
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2021-12-04 17:49:35 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2021-12-06 17:32:31 +0000
ifnet: initial if_grow() shall always succeed
So let's just call malloc() directly. This also avoids hidden
doubling of default V_if_indexlim.
Reviewed by: melifaro, bz, kp
Differential revision: https://reviews.freebsd.org/D33261
---
sys/net/if.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/sys/net/if.c b/sys/net/if.c
index 8b820eb562ed..079ad734812b 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -441,15 +441,11 @@ ifaddr_byindex(u_short idx)
static void
vnet_if_init(const void *unused __unused)
{
- void *old;
CK_STAILQ_INIT(&V_ifnet);
CK_STAILQ_INIT(&V_ifg_head);
- IFNET_WLOCK();
- old = if_grow(); /* create initial table */
- IFNET_WUNLOCK();
- epoch_wait_preempt(net_epoch_preempt);
- free(old, M_IFNET);
+ V_ifindex_table = malloc(V_if_indexlim * sizeof(*V_ifindex_table),
+ M_IFNET, M_WAITOK | M_ZERO);
vnet_if_clone_init();
}
VNET_SYSINIT(vnet_if_init, SI_SUB_INIT_IF, SI_ORDER_SECOND, vnet_if_init,