aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide-atapi.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-27 07:46:36 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-27 07:46:36 -0400
commit03a2faaea8f44edfe583ddf1240948019becfbe4 (patch)
tree08cb1f71390aa1972ad4eb9eba7da48ac3a6d9ce /drivers/ide/ide-atapi.c
parent3ee38302ffc63da93eb0313053a990bb3466e275 (diff)
ide: return request status from ->pc_callback method
Make ->pc_callback method return request status and then move the request completion from ->pc_callback to ide_pc_intr(). There should be no functional changes caused by this patch. Acked-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-atapi.c')
-rw-r--r--drivers/ide/ide-atapi.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index f44474b0adae..f72b5a675435 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -357,6 +357,8 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
357 357
358 /* No more interrupts */ 358 /* No more interrupts */
359 if ((stat & ATA_DRQ) == 0) { 359 if ((stat & ATA_DRQ) == 0) {
360 int uptodate;
361
360 debug_log("Packet command completed, %d bytes transferred\n", 362 debug_log("Packet command completed, %d bytes transferred\n",
361 pc->xferred); 363 pc->xferred);
362 364
@@ -395,7 +397,15 @@ static ide_startstop_t ide_pc_intr(ide_drive_t *drive)
395 dsc = 1; 397 dsc = 1;
396 398
397 /* Command finished - Call the callback function */ 399 /* Command finished - Call the callback function */
398 drive->pc_callback(drive, dsc); 400 uptodate = drive->pc_callback(drive, dsc);
401
402 if (uptodate == 0)
403 drive->failed_pc = NULL;
404
405 if (blk_special_request(rq))
406 ide_complete_rq(drive, 0);
407 else
408 ide_end_request(drive, uptodate, 0);
399 409
400 return ide_stopped; 410 return ide_stopped;
401 } 411 }