Author: kp
Date: Tue Feb 19 18:22:55 2019
New Revision: 344281
URL: https://svnweb.freebsd.org/changeset/base/344281

Log:
  MFC r344061:
  
  garp: Fix vnet related panic for gratuitous arp
  
  Gratuitous ARP packets are sent from a timer, which means we don't have a vnet
  context set. As a result we panic trying to send the packet.
  
  Set the vnet context based on the interface associated with the interface
  address.
  
  To reproduce:
  sysctl net.link.ether.inet.garp_rexmit_count=2
  ifconfig vtnet1 10.0.0.1/24 up
  
  PR:           235699
  Reviewed by:  vangyzen@

Modified:
  stable/12/sys/netinet/if_ether.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sys/netinet/if_ether.c
==============================================================================
--- stable/12/sys/netinet/if_ether.c    Tue Feb 19 17:38:24 2019        
(r344280)
+++ stable/12/sys/netinet/if_ether.c    Tue Feb 19 18:22:55 2019        
(r344281)
@@ -1345,6 +1345,8 @@ garp_rexmit(void *arg)
                return;
        }
 
+       CURVNET_SET(ia->ia_ifa.ifa_ifp->if_vnet);
+
        /*
         * Drop lock while the ARP request is generated.
         */
@@ -1372,6 +1374,8 @@ garp_rexmit(void *arg)
                        ifa_free(&ia->ia_ifa);
                }
        }
+
+       CURVNET_RESTORE();
 }
 
 /*
_______________________________________________
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