diff options
author | Mike Belopuhov <mikeb@cvs.openbsd.org> | 2011-05-06 17:55:01 +0000 |
---|---|---|
committer | Mike Belopuhov <mikeb@cvs.openbsd.org> | 2011-05-06 17:55:01 +0000 |
commit | dad26d583ade096e02b4e7cdc0789ff48cc5774b (patch) | |
tree | 989c78f82072897c8f2bd40e482fd75717e01693 | |
parent | 4187463bce9891befc44f441c7a690aab437f1e4 (diff) |
acknowledge only those interrupts that we can process;
with suggestions and ok oga
-rw-r--r-- | sys/dev/pci/ubsec.c | 7 |
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 */ /* |