summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2001-02-20 04:21:27 +0000
committerimp <imp@FreeBSD.org>2001-02-20 04:21:27 +0000
commit3a51f790ed16e34cb3c962b06ccd27971cf4a9c4 (patch)
tree11cee315bb571eb9802a3e32cf46a70886311d61 /sys/dev
parent13f0b0408bf6bdda48c5eb4ba5048ec5df8b2abb (diff)
downloadFreeBSD-src-3a51f790ed16e34cb3c962b06ccd27971cf4a9c4.zip
FreeBSD-src-3a51f790ed16e34cb3c962b06ccd27971cf4a9c4.tar.gz
Add DC_UNLOCK before first return. This caused returns when dc was on
a shared interrupt. Pointed out by tegge.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/dc/if_dc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c
index 9cb794f..94c284b 100644
--- a/sys/dev/dc/if_dc.c
+++ b/sys/dev/dc/if_dc.c
@@ -2716,8 +2716,10 @@ static void dc_intr(arg)
DC_LOCK(sc);
ifp = &sc->arpcom.ac_if;
- if ( (CSR_READ_4(sc, DC_ISR) & DC_INTRS) == 0)
+ if ( (CSR_READ_4(sc, DC_ISR) & DC_INTRS) == 0) {
+ DC_UNLOCK(sc);
return ;
+ }
/* Suppress unwanted interrupts */
if (!(ifp->if_flags & IFF_UP)) {
OpenPOWER on IntegriCloud