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>
This commit is contained in:
Ian Dowse 2004-05-29 15:21:33 +00:00
parent a8f28cbebe
commit 94122d1695
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=129840

View File

@ -1095,8 +1095,6 @@ axe_stop(struct axe_softc *sc)
AXE_LOCK(sc); AXE_LOCK(sc);
axe_reset(sc);
ifp = &sc->arpcom.ac_if; ifp = &sc->arpcom.ac_if;
ifp->if_timer = 0; ifp->if_timer = 0;
@ -1145,6 +1143,8 @@ axe_stop(struct axe_softc *sc)
sc->axe_ep[AXE_ENDPT_INTR] = NULL; sc->axe_ep[AXE_ENDPT_INTR] = NULL;
} }
axe_reset(sc);
/* Free RX resources. */ /* Free RX resources. */
for (i = 0; i < AXE_RX_LIST_CNT; i++) { for (i = 0; i < AXE_RX_LIST_CNT; i++) {
if (sc->axe_cdata.axe_rx_chain[i].axe_buf != NULL) { if (sc->axe_cdata.axe_rx_chain[i].axe_buf != NULL) {