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
This commit is contained in:
Justin T. Gibbs 2013-05-22 17:13:03 +00:00
parent 5aa42cabe0
commit 818fe953ac

View File

@ -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