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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to