diff options
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r-- | drivers/ide/ide-io.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 2e92497b58aa..e85060164203 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
@@ -739,7 +739,8 @@ void ide_timer_expiry (unsigned long data) | |||
739 | } else if (drive_is_ready(drive)) { | 739 | } else if (drive_is_ready(drive)) { |
740 | if (drive->waiting_for_dma) | 740 | if (drive->waiting_for_dma) |
741 | hwif->dma_ops->dma_lost_irq(drive); | 741 | hwif->dma_ops->dma_lost_irq(drive); |
742 | (void)ide_ack_intr(hwif); | 742 | if (hwif->ack_intr) |
743 | hwif->ack_intr(hwif); | ||
743 | printk(KERN_WARNING "%s: lost interrupt\n", | 744 | printk(KERN_WARNING "%s: lost interrupt\n", |
744 | drive->name); | 745 | drive->name); |
745 | startstop = handler(drive); | 746 | startstop = handler(drive); |
@@ -854,7 +855,7 @@ irqreturn_t ide_intr (int irq, void *dev_id) | |||
854 | 855 | ||
855 | spin_lock_irqsave(&hwif->lock, flags); | 856 | spin_lock_irqsave(&hwif->lock, flags); |
856 | 857 | ||
857 | if (!ide_ack_intr(hwif)) | 858 | if (hwif->ack_intr && hwif->ack_intr(hwif) == 0) |
858 | goto out; | 859 | goto out; |
859 | 860 | ||
860 | handler = hwif->handler; | 861 | handler = hwif->handler; |