Date: Thu, 14 May 2015 16:29:12 +0000 (UTC) From: Roger Pau Monné <royger@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r282908 - head/sys/dev/xen/netfront Message-ID: <201505141629.t4EGTCKx014407@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505141629.t4EGTCKx014407>