Because ti(4) drops a driver lock in RX handler, check whether

driver is still running before re-enabling interrupts.
This commit is contained in:
Pyun YongHyeon 2011-11-04 23:09:57 +00:00
parent 85d21e66be
commit 9c6960c61c

View File

@ -2856,12 +2856,12 @@ ti_intr(void *xsc)
ti_handle_events(sc);
/* Re-enable interrupts. */
CSR_WRITE_4(sc, TI_MB_HOSTINTR, 0);
if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
ifp->if_snd.ifq_head != NULL)
ifp->if_snd.ifq_head != NULL) {
/* Re-enable interrupts. */
CSR_WRITE_4(sc, TI_MB_HOSTINTR, 0);
ti_start_locked(ifp);
}
TI_UNLOCK(sc);
}