diff options
author | iedowse <iedowse@FreeBSD.org> | 2004-05-29 15:21:33 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2004-05-29 15:21:33 +0000 |
commit | 03c4a3a74cff4798be773c0df5590d6093547227 (patch) | |
tree | 72eae42004002318f8daf6d046ecaf3356c7a0ea /sys/dev/usb | |
parent | 8f6b4aa43171edcf92f16a2c287e4e1d4bc94732 (diff) | |
download | FreeBSD-src-03c4a3a74cff4798be773c0df5590d6093547227.zip FreeBSD-src-03c4a3a74cff4798be773c0df5590d6093547227.tar.gz |
In axe_stop(), close the pipes before calling axe_reset(). axe_reset()
changes the device configuration index, which should not be done
while there are pipes open.
Debugged with help from: Luke Dean <LukeD@pobox.com>
Diffstat (limited to 'sys/dev/usb')
-rw-r--r-- | sys/dev/usb/if_axe.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/usb/if_axe.c b/sys/dev/usb/if_axe.c index ebd3d2a..e459a5c 100644 --- a/sys/dev/usb/if_axe.c +++ b/sys/dev/usb/if_axe.c @@ -1095,8 +1095,6 @@ axe_stop(struct axe_softc *sc) AXE_LOCK(sc); - axe_reset(sc); - ifp = &sc->arpcom.ac_if; ifp->if_timer = 0; @@ -1145,6 +1143,8 @@ axe_stop(struct axe_softc *sc) sc->axe_ep[AXE_ENDPT_INTR] = NULL; } + axe_reset(sc); + /* Free RX resources. */ for (i = 0; i < AXE_RX_LIST_CNT; i++) { if (sc->axe_cdata.axe_rx_chain[i].axe_buf != NULL) { |