summaryrefslogtreecommitdiff
path: root/sys/dev/usb/net
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2018-02-24 08:44:51 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2018-02-24 08:44:51 +0000
commit7ef4e76f740c8acb91de2652f2d94c96d8b30861 (patch)
tree6264b22f366164babeb5568d4cd9d30e88df688a /sys/dev/usb/net
parenteed91cae685e7456eb127d96dc5ad4c1c2df194a (diff)
Notes
Diffstat (limited to 'sys/dev/usb/net')
-rw-r--r--sys/dev/usb/net/if_axge.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/usb/net/if_axge.c b/sys/dev/usb/net/if_axge.c
index caceeb27982e..1e82f6549b0a 100644
--- a/sys/dev/usb/net/if_axge.c
+++ b/sys/dev/usb/net/if_axge.c
@@ -587,6 +587,10 @@ axge_detach(device_t dev)
sc = device_get_softc(dev);
ue = &sc->sc_ue;
if (device_is_attached(dev)) {
+
+ /* wait for any post attach or other command to complete */
+ usb_proc_drain(&ue->ue_tq);
+
AXGE_LOCK(sc);
/*
* XXX
@@ -878,7 +882,8 @@ axge_stop(struct usb_ether *ue)
val &= ~MSR_RE;
axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_MSR, val);
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if (ifp != NULL)
+ ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
sc->sc_flags &= ~AXGE_FLAG_LINK;
/*