Date: Wed, 24 Oct 2018 17:32:31 +0000 (UTC) From: Kristof Provost <kp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org Subject: svn commit: r339690 - stable/12/sys/net Message-ID: <201810241732.w9OHWVbH097591@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kp Date: Wed Oct 24 17:32:31 2018 New Revision: 339690 URL: https://svnweb.freebsd.org/changeset/base/339690 Log: MFC r339547: vlan: Fix panic with lagg and vlan vlan_lladdr_fn() is called from taskqueue, which means there's no vnet context set. We can end up trying to send ARP messages (through the iflladdr_event event), which requires a vnet context. PR: 227654 Approved by: re (kib) Modified: stable/12/sys/net/if_vlan.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/net/if_vlan.c ============================================================================== --- stable/12/sys/net/if_vlan.c Wed Oct 24 17:09:20 2018 (r339689) +++ stable/12/sys/net/if_vlan.c Wed Oct 24 17:32:31 2018 (r339690) @@ -1302,8 +1302,13 @@ vlan_lladdr_fn(void *arg, int pending __unused) ifv = (struct ifvlan *)arg; ifp = ifv->ifv_ifp; + + CURVNET_SET(ifp->if_vnet); + /* The ifv_ifp already has the lladdr copied in. */ if_setlladdr(ifp, IF_LLADDR(ifp), ifp->if_addrlen); + + CURVNET_RESTORE(); } static int
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810241732.w9OHWVbH097591>