diff options
Diffstat (limited to 'drivers/ide/ide-dma.c')
-rw-r--r-- | drivers/ide/ide-dma.c | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index a0b8cab1d9a6..219e6fb78dc6 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c | |||
@@ -103,7 +103,7 @@ ide_startstop_t ide_dma_intr(ide_drive_t *drive) | |||
103 | ide_finish_cmd(drive, cmd, stat); | 103 | ide_finish_cmd(drive, cmd, stat); |
104 | else | 104 | else |
105 | ide_complete_rq(drive, 0, | 105 | ide_complete_rq(drive, 0, |
106 | cmd->rq->nr_sectors << 9); | 106 | blk_rq_sectors(cmd->rq) << 9); |
107 | return ide_stopped; | 107 | return ide_stopped; |
108 | } | 108 | } |
109 | printk(KERN_ERR "%s: %s: bad DMA status (0x%02x)\n", | 109 | printk(KERN_ERR "%s: %s: bad DMA status (0x%02x)\n", |
@@ -347,7 +347,6 @@ u8 ide_find_dma_mode(ide_drive_t *drive, u8 req_mode) | |||
347 | 347 | ||
348 | return mode; | 348 | return mode; |
349 | } | 349 | } |
350 | EXPORT_SYMBOL_GPL(ide_find_dma_mode); | ||
351 | 350 | ||
352 | static int ide_tune_dma(ide_drive_t *drive) | 351 | static int ide_tune_dma(ide_drive_t *drive) |
353 | { | 352 | { |
@@ -510,23 +509,11 @@ ide_startstop_t ide_dma_timeout_retry(ide_drive_t *drive, int error) | |||
510 | /* | 509 | /* |
511 | * un-busy drive etc and make sure request is sane | 510 | * un-busy drive etc and make sure request is sane |
512 | */ | 511 | */ |
513 | |||
514 | rq = hwif->rq; | 512 | rq = hwif->rq; |
515 | if (!rq) | 513 | if (rq) { |
516 | goto out; | 514 | hwif->rq = NULL; |
517 | 515 | rq->errors = 0; | |
518 | hwif->rq = NULL; | 516 | } |
519 | |||
520 | rq->errors = 0; | ||
521 | |||
522 | if (!rq->bio) | ||
523 | goto out; | ||
524 | |||
525 | rq->sector = rq->bio->bi_sector; | ||
526 | rq->current_nr_sectors = bio_iovec(rq->bio)->bv_len >> 9; | ||
527 | rq->hard_cur_sectors = rq->current_nr_sectors; | ||
528 | rq->buffer = bio_data(rq->bio); | ||
529 | out: | ||
530 | return ret; | 517 | return ret; |
531 | } | 518 | } |
532 | 519 | ||