aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r--drivers/ide/ide-io.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index 272cc38f6dbe..1059f809b809 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -683,8 +683,9 @@ void ide_timer_expiry (unsigned long data)
683 } else if (drive_is_ready(drive)) { 683 } else if (drive_is_ready(drive)) {
684 if (drive->waiting_for_dma) 684 if (drive->waiting_for_dma)
685 hwif->dma_ops->dma_lost_irq(drive); 685 hwif->dma_ops->dma_lost_irq(drive);
686 if (hwif->ack_intr) 686 if (hwif->port_ops && hwif->port_ops->clear_irq)
687 hwif->ack_intr(hwif); 687 hwif->port_ops->clear_irq(drive);
688
688 printk(KERN_WARNING "%s: lost interrupt\n", 689 printk(KERN_WARNING "%s: lost interrupt\n",
689 drive->name); 690 drive->name);
690 startstop = handler(drive); 691 startstop = handler(drive);
@@ -803,7 +804,8 @@ irqreturn_t ide_intr (int irq, void *dev_id)
803 804
804 spin_lock_irqsave(&hwif->lock, flags); 805 spin_lock_irqsave(&hwif->lock, flags);
805 806
806 if (hwif->ack_intr && hwif->ack_intr(hwif) == 0) 807 if (hwif->port_ops && hwif->port_ops->test_irq &&
808 hwif->port_ops->test_irq(hwif) == 0)
807 goto out; 809 goto out;
808 810
809 handler = hwif->handler; 811 handler = hwif->handler;