Date: Wed, 22 May 2013 17:13:03 +0000 (UTC) From: "Justin T. Gibbs" <gibbs@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r250913 - head/sys/dev/xen/netfront Message-ID: <201305221713.r4MHD3n7083573@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gibbs Date: Wed May 22 17:13:03 2013 New Revision: 250913 URL: http://svnweb.freebsd.org/changeset/base/250913 Log: Correct panic on detach of Xen PV network interfaces. dev/xen/netfront: In netif_free(), properly stop the interface and drain any pending timers prior to disconnecting from the backend device. Remove all media and detach our interface object from the system prior to deleting it. PR: kern/176471 Submitted by: Roger Pau Monne <roger.pau@citrix.com> Reviewed by: gibbs 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 Wed May 22 16:33:28 2013 (r250912) +++ head/sys/dev/xen/netfront/netfront.c Wed May 22 17:13:03 2013 (r250913) @@ -2171,10 +2171,14 @@ netfront_detach(device_t dev) static void netif_free(struct netfront_info *info) { + XN_LOCK(info); + xn_stop(info); + XN_UNLOCK(info); + callout_drain(&info->xn_stat_ch); netif_disconnect_backend(info); -#if 0 - close_netdev(info); -#endif + ifmedia_removeall(&info->sc_media); + ether_ifdetach(info->xn_ifp); + if_free(info->xn_ifp); } static void
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305221713.r4MHD3n7083573>