aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2024-03-03 20:56:58 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2024-03-03 20:56:58 +0000
commit2f5a315b307447f91891c96fb23c7333fa406f2f (patch)
treeaf0827720ad38a9219179cf178d518f532ecda70 /sys
parent2496fb72cf37bb9aa0cbd108ded06324ea52bd11 (diff)
downloadsrc-2f5a315b307447f91891c96fb23c7333fa406f2f.tar.gz
src-2f5a315b307447f91891c96fb23c7333fa406f2f.zip
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
Diffstat (limited to 'sys')
-rw-r--r--sys/compat/linux/linux.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/linux/linux.c b/sys/compat/linux/linux.c
index 569f9ffe1617..69849b1d98ad 100644
--- a/sys/compat/linux/linux.c
+++ b/sys/compat/linux/linux.c
@@ -253,14 +253,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);
}