summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xwcfxo.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/wcfxo.c b/wcfxo.c
index 017ec5a..c820248 100755
--- a/wcfxo.c
+++ b/wcfxo.c
@@ -247,16 +247,24 @@ static void wcfxo_interrupt(int irq, void *dev_id, struct pt_regs *regs)
ints = inb(wc->ioaddr + WC_INTSTAT);
outb(ints, wc->ioaddr + WC_INTSTAT);
+
+ if (!ints)
+ return;
+
if (ints & 0x0f) {
wcfxo_transmitprep(wc, ints);
wcfxo_receiveprep(wc, ints);
}
- if (ints & 0x10)
+ if (ints & 0x10) {
printk("PCI Master abort\n");
-
- if (ints & 0x20)
+ return;
+ }
+
+ if (ints & 0x20) {
printk("PCI Target abort\n");
+ return;
+ }
if (1 /* !(wc->report % 0xf) */) {
/* Check RING from register and debounce for 8ms */