Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Mar 2026 17:04:02 +0000
From:      Zhenlei Huang <zlei@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: e0731059af91 - main - ifnet: Remove unreachable code
Message-ID:  <69b83802.21636.428d9997@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by zlei:

URL: https://cgit.FreeBSD.org/src/commit/?id=e0731059af912a27d0f842959218946b1daaa7d1

commit e0731059af912a27d0f842959218946b1daaa7d1
Author:     Zhenlei Huang <zlei@FreeBSD.org>
AuthorDate: 2026-03-16 17:03:05 +0000
Commit:     Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2026-03-16 17:03:05 +0000

    ifnet: Remove unreachable code
    
    The ioctls SIOCSIFVNET and SIOCSIFRVNET are for userland only. For
    SIOCSIFVNET, if_vmove_loan(), the interface is obtained from current
    VNET. For SIOCSIFRVNET, if_vmove_reclaim(), a valid child prison is
    held before getting the interface. In both cases the VNET of the
    obtained interfaces is stable, so there's no need to check it.
    
    No functional change intended.
    
    Reviewed by:    glebius, jamie (for #jails)
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D55828
---
 sys/net/if.c | 18 ------------------
 1 file changed, 18 deletions(-)

diff --git a/sys/net/if.c b/sys/net/if.c
index c3f31a28b40d..41084ecf0516 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1188,7 +1188,6 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, char *ifname, int jid)
 	struct prison *pr;
 	struct ifnet *difp;
 	bool found;
-	bool shutdown;
 
 	MPASS(ifindex_table[ifp->if_index].ife_ifnet == ifp);
 
@@ -1218,14 +1217,6 @@ if_vmove_loan(struct thread *td, struct ifnet *ifp, char *ifname, int jid)
 	}
 	sx_xlock(&ifnet_detach_sxlock);
 
-	/* Make sure the VNET is stable. */
-	shutdown = VNET_IS_SHUTTING_DOWN(ifp->if_vnet);
-	if (shutdown) {
-		sx_xunlock(&ifnet_detach_sxlock);
-		prison_free(pr);
-		return (EBUSY);
-	}
-
 	found = if_unlink_ifnet(ifp, true);
 	if (! found) {
 		sx_xunlock(&ifnet_detach_sxlock);
@@ -1252,7 +1243,6 @@ if_vmove_reclaim(struct thread *td, char *ifname, int jid)
 	struct vnet *vnet_dst;
 	struct ifnet *ifp;
 	int found __diagused;
- 	bool shutdown;
 
 	/* Try to find the prison within our visibility. */
 	sx_slock(&allprison_lock);
@@ -1280,14 +1270,6 @@ if_vmove_reclaim(struct thread *td, char *ifname, int jid)
 		return (EEXIST);
 	}
 
-	/* Make sure the VNET is stable. */
-	shutdown = VNET_IS_SHUTTING_DOWN(ifp->if_vnet);
-	if (shutdown) {
-		CURVNET_RESTORE();
-		prison_free(pr);
-		return (EBUSY);
-	}
-
 	/* Get interface back from child jail/vnet. */
 	found = if_unlink_ifnet(ifp, true);
 	MPASS(found);


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69b83802.21636.428d9997>