Date: Fri, 15 Mar 2024 18:33:25 +0100 (CET) From: freebsd@oldach.net (Helge Oldach) To: glebius@FreeBSD.org (Gleb Smirnoff) Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: Re: git: db4429d00f0d - stable/13 - linux: require vnet(9) context in ifname_bsd_to_linux_name() Message-ID: <202403151733.42FHXPrI046235@nuc.oldach.net> In-Reply-To: <202403111612.42BGCrZd000296@gitrepo.freebsd.org> from Gleb Smirnoff at "11 Mar 2024 16:12:53"
next in thread | previous in thread | raw e-mail | index | archive | help
Gleb Smirnoff wrote on Mon, 11 Mar 2024 17:12:53 +0100 (CET): > The branch stable/13 has been updated by glebius: >=20 > URL: https://cgit.FreeBSD.org/src/commit/?id=3Ddb4429d00f0d95a1532f8707f8= b828a744586dc7 >=20 > 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 >=20 > linux: require vnet(9) context in ifname_bsd_to_linux_name() > =20 > This function is used by netlink(9) only. The netlink(9) taskqueue t= hread > 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 incor= rect. > 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 vne= t(9). > =20 > Reviewed by: melifaro, dchagin > Differential Revision: https://reviews.freebsd.org/D44191 > PR: 277286 > =20 > (cherry picked from commit 2f5a315b307447f91891c96fb23c7333fa406f2f) > --- > sys/compat/linux/linux.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) >=20 > 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; > =20 > + CURVNET_ASSERT_SET(); > + > ret =3D 0; > - CURVNET_SET(TD_TO_VNET(curthread)); > NET_EPOCH_ENTER(et); > ifp =3D ifunit(bsdname); > if (ifp !=3D NULL) > ret =3D ifname_bsd_to_linux_ifp(ifp, lxname, len); > NET_EPOCH_EXIT(et); > - CURVNET_RESTORE(); > return (ret); > } This bails out when option VIMAGE is not included: =3D=3D=3D> linux (all) =3D=3D=3D> linux64 (all) =3D=3D=3D> linux_common (all) cc -target x86_64-unknown-freebsd13.3 --sysroot=3D/usr/obj/usr/src/amd64.am= d64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin -O2 -pipe -fno-common = -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -DKLD_TIED -nostdinc = -DHAVE_KERNEL_OPTION_HEADERS -i= nclude /usr/obj/usr/src/amd64.amd64/sys/HMO/opt_global.h -I. -I/usr/src/sys= -I/usr/src/sys/contrib/ck/include -fno-common -g -fno-omit-frame-pointer -= mno-omit-leaf-frame-pointer -fdebug-prefix-map=3D./machine=3D/usr/src/sys/a= md64/include -fdebug-prefix-map=3D.= /x86=3D/usr/src/sys/x86/include -I/usr/obj/usr/src/amd64.amd64/sys/HMO = -MD -MF.depend.linux.o -MTlinux.o -mcmodel=3Dkernel -mno-red-zone -mno-mmx= -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fwr= apv -fstack-protector -Wall -Wstr= ict-prototypes -Wmissing-prototypes -Wpointer-arith -Wcast-qual -Wundef -Wn= o-pointer-sign -D__printf__=3D__freebsd_kprintf__ -Wmissing-include-dirs -f= diagnostics-show-option -Wno-unknown-pragmas -Wno-error=3Dtautological-comp= are -Wno-error=3Dempty-body -Wno-er= ror=3Dparentheses-equality -Wno-error=3Dunused-function -Wno-error=3Dpointe= r-sign -Wno-error=3Dshift-negative-value -Wno-address-of-packed-member -Wno= -error=3Darray-parameter -Wno-error=3Ddeprecated-non-prototype -Wno-error= =3Dstrict-prototypes -Wno-error=3Dunused-but-se= t-variable -Wno-error=3Dunused-but-set-variable -Wno-format-zero-length -= mno-aes -mno-avx -std=3Diso9899:1999 -c /usr/src/sys/compat/linux/linux.c = -o linux.o /usr/src/sys/compat/linux/linux.c:253:2: error: call to undeclared function= 'CURVNET_ASSERT_SET'; ISO C99 and later do not support implicit function d= eclarations [-Werror,-Wimplicit-function-declaration] 253 | CURVNET_ASSERT_SET(); | ^ 1 error generated. *** Error code 1 Stop. make[4]: stopped in /usr/src/sys/modules/linux_common *** Error code 1 Stop. make[3]: stopped in /usr/src/sys/modules *** Error code 1 Stop. make[2]: stopped in /usr/obj/usr/src/amd64.amd64/sys/HMO *** Error code 1 Stop. make[1]: stopped in /usr/src *** Error code 1 Stop. make: stopped in /usr/src IMHO same behaviour with 14. Kind regards Helge
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202403151733.42FHXPrI046235>