diff options
Diffstat (limited to 'drivers/scsi/ide-scsi.c')
-rw-r--r-- | drivers/scsi/ide-scsi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c index ec9a5de2e75e..ada733ca6725 100644 --- a/drivers/scsi/ide-scsi.c +++ b/drivers/scsi/ide-scsi.c | |||
@@ -370,6 +370,10 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
370 | pc->callback(drive); | 370 | pc->callback(drive); |
371 | return ide_stopped; | 371 | return ide_stopped; |
372 | } | 372 | } |
373 | |||
374 | /* Clear the interrupt */ | ||
375 | stat = ide_read_status(drive); | ||
376 | |||
373 | if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { | 377 | if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { |
374 | if (hwif->dma_ops->dma_end(drive)) | 378 | if (hwif->dma_ops->dma_end(drive)) |
375 | pc->flags |= PC_FLAG_DMA_ERROR; | 379 | pc->flags |= PC_FLAG_DMA_ERROR; |
@@ -378,9 +382,6 @@ static ide_startstop_t idescsi_pc_intr (ide_drive_t *drive) | |||
378 | debug_log("%s: DMA finished\n", drive->name); | 382 | debug_log("%s: DMA finished\n", drive->name); |
379 | } | 383 | } |
380 | 384 | ||
381 | /* Clear the interrupt */ | ||
382 | stat = ide_read_status(drive); | ||
383 | |||
384 | if ((stat & DRQ_STAT) == 0) { | 385 | if ((stat & DRQ_STAT) == 0) { |
385 | /* No more interrupts */ | 386 | /* No more interrupts */ |
386 | debug_log("Packet command completed, %d bytes transferred\n", | 387 | debug_log("Packet command completed, %d bytes transferred\n", |