diff options
Diffstat (limited to 'drivers/ide/ide-atapi.c')
-rw-r--r-- | drivers/ide/ide-atapi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index f591166d2c93..1481f71f8173 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c | |||
@@ -342,8 +342,11 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive) | |||
342 | stat = tp_ops->read_status(hwif); | 342 | stat = tp_ops->read_status(hwif); |
343 | 343 | ||
344 | if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { | 344 | if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) { |
345 | if (hwif->dma_ops->dma_end(drive) || | 345 | int rc = hwif->dma_ops->dma_end(drive); |
346 | (drive->media == ide_tape && (stat & ATA_ERR))) { | 346 | |
347 | ide_destroy_dmatable(drive); | ||
348 | |||
349 | if (rc || (drive->media == ide_tape && (stat & ATA_ERR))) { | ||
347 | if (drive->media == ide_floppy) | 350 | if (drive->media == ide_floppy) |
348 | printk(KERN_ERR "%s: DMA %s error\n", | 351 | printk(KERN_ERR "%s: DMA %s error\n", |
349 | drive->name, rq_data_dir(pc->rq) | 352 | drive->name, rq_data_dir(pc->rq) |