svn commit: r282908 - head/sys/dev/xen/netfront
Roger Pau Monné
royger at FreeBSD.org
Thu May 14 16:29:12 UTC 2015
Author: royger
Date: Thu May 14 16:29:11 2015
New Revision: 282908
URL: https://svnweb.freebsd.org/changeset/base/282908
Log:
netfront: wait for backend to connect before sending ARP
Netfront has to wait for the backend to switch to state XenbusStateConnected
before sending the ARP request, or else the backend might not be connected
and thus the packet will be lost.
Sponsored by: Citrix Systems R&D
MFC after: 1 week
Modified:
head/sys/dev/xen/netfront/netfront.c
Modified: head/sys/dev/xen/netfront/netfront.c
==============================================================================
--- head/sys/dev/xen/netfront/netfront.c Thu May 14 15:49:48 2015 (r282907)
+++ head/sys/dev/xen/netfront/netfront.c Thu May 14 16:29:11 2015 (r282908)
@@ -682,7 +682,6 @@ netfront_backend_changed(device_t dev, X
switch (newstate) {
case XenbusStateInitialising:
case XenbusStateInitialised:
- case XenbusStateConnected:
case XenbusStateUnknown:
case XenbusStateClosed:
case XenbusStateReconfigured:
@@ -694,13 +693,15 @@ netfront_backend_changed(device_t dev, X
if (network_connect(sc) != 0)
break;
xenbus_set_state(dev, XenbusStateConnected);
-#ifdef INET
- netfront_send_fake_arp(dev, sc);
-#endif
break;
case XenbusStateClosing:
xenbus_set_state(dev, XenbusStateClosed);
break;
+ case XenbusStateConnected:
+#ifdef INET
+ netfront_send_fake_arp(dev, sc);
+#endif
+ break;
}
}
More information about the svn-src-all
mailing list