summaryrefslogtreecommitdiffstats
path: root/sys/dev/dc
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-12-28 13:21:05 +0000
committerglebius <glebius@FreeBSD.org>2005-12-28 13:21:05 +0000
commita8f22162f695d8f0ce22f99b3ee4b1aea5b892df (patch)
tree6c941fb6bc29e339e05058ddcbd55e05440a8813 /sys/dev/dc
parentf867a5733bf2a9c10ec78cccb466d398e89ce7b2 (diff)
downloadFreeBSD-src-a8f22162f695d8f0ce22f99b3ee4b1aea5b892df.zip
FreeBSD-src-a8f22162f695d8f0ce22f99b3ee4b1aea5b892df.tar.gz
Check for IFF_DRV_RUNNING in the interrupt loop.
Reported & tested by: Martin P. Hansen <mph lima.dyndns.dk>
Diffstat (limited to 'sys/dev/dc')
-rw-r--r--sys/dev/dc/if_dc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c
index bf1d86d..242c928 100644
--- a/sys/dev/dc/if_dc.c
+++ b/sys/dev/dc/if_dc.c
@@ -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);
OpenPOWER on IntegriCloud