Date: Sun, 21 Oct 2018 16:51:35 +0000 (UTC) From: Kristof Provost <kp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r339547 - head/sys/net Message-ID: <201810211651.w9LGpZJr043855@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kp Date: Sun Oct 21 16:51:35 2018 New Revision: 339547 URL: https://svnweb.freebsd.org/changeset/base/339547 Log: 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 MFC after: 3 days Modified: head/sys/net/if_vlan.c Modified: head/sys/net/if_vlan.c ============================================================================== --- head/sys/net/if_vlan.c Sun Oct 21 16:49:49 2018 (r339546) +++ head/sys/net/if_vlan.c Sun Oct 21 16:51:35 2018 (r339547) @@ -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?201810211651.w9LGpZJr043855>