Date: Thu, 23 Aug 2018 16:03:40 +0000 From: bugzilla-noreply@freebsd.org To: net@FreeBSD.org Subject: [Bug 230845] VIMAGE regression: breaks netfront suspend/resume Message-ID: <bug-230845-7501-sGfIJrgwaQ@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-230845-7501@https.bugs.freebsd.org/bugzilla/> References: <bug-230845-7501@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230845 Kristof Provost <kp@freebsd.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kp@freebsd.org --- Comment #1 from Kristof Provost <kp@freebsd.org> --- This likely means you wound up calling arp_ifnet() without a curvnet set. That's important context for basically all networking operations, but it's = not going to be set when called from a kernel thread, as appears to be the case here. Usually all you have to do is ensure that the correct vnet is set. This is untested (and may not even compile), but might fix it: diff --git a/sys/dev/xen/netfront/netfront.c b/sys/dev/xen/netfront/netfron= t.c index ba8ac3caf7f..12938354f9c 100644 --- a/sys/dev/xen/netfront/netfront.c +++ b/sys/dev/xen/netfront/netfront.c @@ -962,6 +962,8 @@ netfront_backend_changed(device_t dev, XenbusState newstate) DPRINTK("newstate=3D%d\n", newstate); + CURVNET_SET(sc->xn_ifp->vnet); + switch (newstate) { case XenbusStateInitialising: case XenbusStateInitialised: @@ -994,6 +996,8 @@ netfront_backend_changed(device_t dev, XenbusState newstate) #endif break; } + + CURVNET_RESTORE(); } /** --=20 You are receiving this mail because: You are on the CC list for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-230845-7501-sGfIJrgwaQ>