Check for IFF_DRV_RUNNING in the interrupt loop.

Reported & tested by:	Martin P. Hansen <mph lima.dyndns.dk>
This commit is contained in:
Gleb Smirnoff 2005-12-28 13:21:05 +00:00
parent 747cdba40e
commit 7ed2454cb3

View File

@ -3138,8 +3138,9 @@ dc_intr(void *arg)
/* Disable interrupts. */
CSR_WRITE_4(sc, DC_IMR, 0x00000000);
while (((status = CSR_READ_4(sc, DC_ISR)) & DC_INTRS)
&& status != 0xFFFFFFFF) {
while (((status = CSR_READ_4(sc, DC_ISR)) & DC_INTRS) &&
status != 0xFFFFFFFF &&
ifp->if_drv_flags & IFF_DRV_RUNNING) {
CSR_WRITE_4(sc, DC_ISR, status);