git: db4429d00f0d - stable/13 - linux: require vnet(9) context in ifname_bsd_to_linux_name()

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Mon, 11 Mar 2024 16:12:53 UTC
The branch stable/13 has been updated by glebius:

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

commit db4429d00f0d95a1532f8707f8b828a744586dc7
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2024-03-03 20:56:58 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2024-03-11 16:12:36 +0000

    linux: require vnet(9) context in ifname_bsd_to_linux_name()
    
    This function is used by netlink(9) only.  The netlink(9) taskqueue thread
    runs in the vnet of the socket whose request the thread is processing
    right now.  This is a correct vnet and resetting it to vnet0 is incorrect.
    If the function is to be used by any other caller in addition to
    netlink(9), it would be caller's responsiblity to provide correct vnet(9).
    
    Reviewed by:            melifaro, dchagin
    Differential Revision:  https://reviews.freebsd.org/D44191
    PR:                     277286
    
    (cherry picked from commit 2f5a315b307447f91891c96fb23c7333fa406f2f)
---
 sys/compat/linux/linux.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linux/linux.c b/sys/compat/linux/linux.c
index 6191372b6312..141fa715c7c1 100644
--- a/sys/compat/linux/linux.c
+++ b/sys/compat/linux/linux.c
@@ -250,14 +250,14 @@ ifname_bsd_to_linux_name(const char *bsdname, char *lxname, size_t len)
 	struct ifnet *ifp;
 	int ret;
 
+	CURVNET_ASSERT_SET();
+
 	ret = 0;
-	CURVNET_SET(TD_TO_VNET(curthread));
 	NET_EPOCH_ENTER(et);
 	ifp = ifunit(bsdname);
 	if (ifp != NULL)
 		ret = ifname_bsd_to_linux_ifp(ifp, lxname, len);
 	NET_EPOCH_EXIT(et);
-	CURVNET_RESTORE();
 	return (ret);
 }