summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Belopuhov <mikeb@cvs.openbsd.org>2011-05-06 17:55:01 +0000
committerMike Belopuhov <mikeb@cvs.openbsd.org>2011-05-06 17:55:01 +0000
commitdad26d583ade096e02b4e7cdc0789ff48cc5774b (patch)
tree989c78f82072897c8f2bd40e482fd75717e01693
parent4187463bce9891befc44f441c7a690aab437f1e4 (diff)
acknowledge only those interrupts that we can process;
with suggestions and ok oga
-rw-r--r--sys/dev/pci/ubsec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/pci/ubsec.c b/sys/dev/pci/ubsec.c
index 9e2402e1185..5fa1bd59a3f 100644
--- a/sys/dev/pci/ubsec.c
+++ b/sys/dev/pci/ubsec.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ubsec.c,v 1.152 2011/04/05 11:48:28 blambert Exp $ */
+/* $OpenBSD: ubsec.c,v 1.153 2011/05/06 17:55:00 mikeb Exp $ */
/*
* Copyright (c) 2000 Jason L. Wright (jason@thought.net)
@@ -379,10 +379,11 @@ ubsec_intr(void *arg)
stat = READ_REG(sc, BS_STAT);
- stat &= sc->sc_statmask;
- if (stat == 0)
+ if ((stat & (BS_STAT_MCR1_DONE|BS_STAT_MCR2_DONE|BS_STAT_MCR4_DONE|
+ BS_STAT_DMAERR)) == 0)
return (0);
+ stat &= sc->sc_statmask;
WRITE_REG(sc, BS_STAT, stat); /* IACK */
/*