diff options
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r-- | drivers/ide/ide-io.c | 8 |
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; |