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:
parent
a8f28cbebe
commit
94122d1695
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=129840
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user