diff options
Diffstat (limited to 'wcfxo.c')
-rwxr-xr-x | wcfxo.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -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 */ |