git: 9b76228006d8 - main - inpcb: retire inp_vnet
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 14 Apr 2026 16:06:03 UTC
The branch main has been updated by glebius:
URL: https://cgit.FreeBSD.org/src/commit/?id=9b76228006d8f0e45dea03d305eeac587d7a8500
commit 9b76228006d8f0e45dea03d305eeac587d7a8500
Author: Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2026-04-14 16:02:00 +0000
Commit: Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2026-04-14 16:02:00 +0000
inpcb: retire inp_vnet
Now that a functional inpcb can not outlive its socket, just use socket's
vnet pointer.
---
sys/kern/uipc_ktls.c | 4 ++--
sys/netinet/in_pcb.c | 3 ---
sys/netinet/in_pcb.h | 8 --------
sys/netinet/tcp_hpts.c | 2 +-
sys/netinet/tcp_timer.c | 10 +++++-----
5 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/sys/kern/uipc_ktls.c b/sys/kern/uipc_ktls.c
index 0112cf8b6941..4c3a4085b8db 100644
--- a/sys/kern/uipc_ktls.c
+++ b/sys/kern/uipc_ktls.c
@@ -1797,7 +1797,7 @@ ktls_reset_send_tag(void *context, int pending)
INP_WLOCK(inp);
tp = intotcpcb(inp);
if (!(tp->t_flags & TF_DISCONNECTED)) {
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
tp = tcp_drop(tp, ECONNABORTED);
CURVNET_RESTORE();
if (tp != NULL) {
@@ -2475,7 +2475,7 @@ ktls_drop(struct socket *so, int error)
NET_EPOCH_ENTER(et);
INP_WLOCK(inp);
if (!(tp->t_flags & TF_DISCONNECTED)) {
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
tp = tcp_drop(tp, error);
CURVNET_RESTORE();
if (tp != NULL)
diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index af62aea91bf8..22c3287b93fd 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -558,9 +558,6 @@ in_pcbinfo_init(struct inpcbinfo *pcbinfo, struct inpcbstorage *pcbstor,
mtx_init(&pcbinfo->ipi_hash_lock, pcbstor->ips_hashlock_name,
NULL, MTX_DEF);
-#ifdef VIMAGE
- pcbinfo->ipi_vnet = curvnet;
-#endif
CK_LIST_INIT(&pcbinfo->ipi_list_unconn);
pcbinfo->ipi_count = 0;
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h
index 8663ba205b0a..1a6ce50aedbb 100644
--- a/sys/netinet/in_pcb.h
+++ b/sys/netinet/in_pcb.h
@@ -299,7 +299,6 @@ struct xktls_session {
#include <net/route.h>
#include <sys/proc.h>
#include <sys/sysctl.h>
-#include <net/vnet.h>
#include <vm/uma.h>
#include <sys/ck.h>
@@ -418,8 +417,6 @@ struct inpcb {
};
};
-#define inp_vnet inp_pcbinfo->ipi_vnet
-
/*
* Per-VNET pcb database for each high-level protocol (UDP, TCP, ...) in both
* IPv4 and IPv6.
@@ -478,11 +475,6 @@ struct inpcbinfo {
* hashed by local port.
*/
struct inpcblbgrouphead *ipi_lbgrouphashbase; /* (r:e/w:h) */
-
- /*
- * Pointer to network stack instance
- */
- struct vnet *ipi_vnet; /* (c) */
};
/*
diff --git a/sys/netinet/tcp_hpts.c b/sys/netinet/tcp_hpts.c
index 8dfbe126d46a..2bb78ed28372 100644
--- a/sys/netinet/tcp_hpts.c
+++ b/sys/netinet/tcp_hpts.c
@@ -1359,7 +1359,7 @@ again:
*/
__tcp_set_hpts(pace, tp);
}
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
/* Lets do any logging that we might want to */
tcp_hpts_log(hpts, tp, &tv, slots_to_run, i, from_callout);
diff --git a/sys/netinet/tcp_timer.c b/sys/netinet/tcp_timer.c
index b409daf5895e..ca242f2be627 100644
--- a/sys/netinet/tcp_timer.c
+++ b/sys/netinet/tcp_timer.c
@@ -315,7 +315,7 @@ tcp_timer_delack(struct tcpcb *tp)
INP_WLOCK_ASSERT(inp);
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
tp->t_flags |= TF_ACKNOW;
TCPSTAT_INC(tcps_delack);
NET_EPOCH_ENTER(et);
@@ -335,7 +335,7 @@ tcp_timer_2msl(struct tcpcb *tp)
INP_WLOCK_ASSERT(inp);
TCP_PROBE2(debug__user, tp, PRU_SLOWTIMO);
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
tcp_log_end_status(tp, TCP_EI_STATUS_2MSL);
tcp_free_sackholes(tp);
/*
@@ -385,7 +385,7 @@ tcp_timer_keep(struct tcpcb *tp)
INP_WLOCK_ASSERT(inp);
TCP_PROBE2(debug__user, tp, PRU_SLOWTIMO);
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
/*
* Because we don't regularly reset the keepalive callout in
* the ESTABLISHED state, it may be that we don't actually need
@@ -493,7 +493,7 @@ tcp_timer_persist(struct tcpcb *tp)
INP_WLOCK_ASSERT(inp);
TCP_PROBE2(debug__user, tp, PRU_SLOWTIMO);
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
/*
* Persistence timer into zero window.
* Force a byte to be output, if possible.
@@ -560,7 +560,7 @@ tcp_timer_rexmt(struct tcpcb *tp)
INP_WLOCK_ASSERT(inp);
TCP_PROBE2(debug__user, tp, PRU_SLOWTIMO);
- CURVNET_SET(inp->inp_vnet);
+ CURVNET_SET(inp->inp_socket->so_vnet);
if (tp->t_fb->tfb_tcp_rexmit_tmr) {
/* The stack has a timer action too. */
(*tp->t_fb->tfb_tcp_rexmit_tmr)(tp);