diff options
-rw-r--r-- | drivers/ide/ide-cd.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index cbe4f1a04c14..c638d057f910 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -1674,6 +1674,11 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) | |||
1674 | if (dma) { | 1674 | if (dma) { |
1675 | info->dma = 0; | 1675 | info->dma = 0; |
1676 | dma_error = HWIF(drive)->ide_dma_end(drive); | 1676 | dma_error = HWIF(drive)->ide_dma_end(drive); |
1677 | if (dma_error) { | ||
1678 | printk(KERN_ERR "%s: DMA %s error\n", drive->name, | ||
1679 | rq_data_dir(rq) ? "write" : "read"); | ||
1680 | ide_dma_off(drive); | ||
1681 | } | ||
1677 | } | 1682 | } |
1678 | 1683 | ||
1679 | if (cdrom_decode_status(drive, 0, &stat)) | 1684 | if (cdrom_decode_status(drive, 0, &stat)) |
@@ -1683,11 +1688,8 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t *drive) | |||
1683 | * using dma, transfer is complete now | 1688 | * using dma, transfer is complete now |
1684 | */ | 1689 | */ |
1685 | if (dma) { | 1690 | if (dma) { |
1686 | if (dma_error) { | 1691 | if (dma_error) |
1687 | printk(KERN_ERR "ide-cd: dma error\n"); | ||
1688 | ide_dma_off(drive); | ||
1689 | return ide_error(drive, "dma error", stat); | 1692 | return ide_error(drive, "dma error", stat); |
1690 | } | ||
1691 | 1693 | ||
1692 | spin_lock_irqsave(&ide_lock, flags); | 1694 | spin_lock_irqsave(&ide_lock, flags); |
1693 | if (__blk_end_request(rq, 0, rq->data_len)) | 1695 | if (__blk_end_request(rq, 0, rq->data_len)) |