aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide-atapi.c10
-rw-r--r--drivers/scsi/ide-scsi.c5
2 files changed, 5 insertions, 10 deletions
diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c
index d5249dfc5546..0e9eeb08da2d 100644
--- a/drivers/ide/ide-atapi.c
+++ b/drivers/ide/ide-atapi.c
@@ -31,10 +31,7 @@ ide_startstop_t ide_pc_intr(ide_drive_t *drive, struct ide_atapi_pc *pc,
31 debug_log("Enter %s - interrupt handler\n", __func__); 31 debug_log("Enter %s - interrupt handler\n", __func__);
32 32
33 if (pc->flags & PC_FLAG_TIMEDOUT) { 33 if (pc->flags & PC_FLAG_TIMEDOUT) {
34 if (drive->media == ide_floppy || drive->media == ide_tape) 34 drive->pc_callback(drive);
35 drive->pc_callback(drive);
36 else
37 pc->callback(drive);
38 return ide_stopped; 35 return ide_stopped;
39 } 36 }
40 37
@@ -100,10 +97,7 @@ cmd_finished:
100 return ide_stopped; 97 return ide_stopped;
101 } 98 }
102 /* Command finished - Call the callback function */ 99 /* Command finished - Call the callback function */
103 if (drive->media == ide_floppy || drive->media == ide_tape) 100 drive->pc_callback(drive);
104 drive->pc_callback(drive);
105 else
106 pc->callback(drive);
107 return ide_stopped; 101 return ide_stopped;
108 } 102 }
109 103
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index 659db3f7ae08..37cfec43bd40 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -229,7 +229,6 @@ static int idescsi_check_condition(ide_drive_t *drive,
229 rq->cmd_type = REQ_TYPE_SENSE; 229 rq->cmd_type = REQ_TYPE_SENSE;
230 rq->cmd_flags |= REQ_PREEMPT; 230 rq->cmd_flags |= REQ_PREEMPT;
231 pc->timeout = jiffies + WAIT_READY; 231 pc->timeout = jiffies + WAIT_READY;
232 pc->callback = ide_scsi_callback;
233 /* NOTE! Save the failed packet command in "rq->buffer" */ 232 /* NOTE! Save the failed packet command in "rq->buffer" */
234 rq->buffer = (void *) failed_cmd->special; 233 rq->buffer = (void *) failed_cmd->special;
235 pc->scsi_cmd = ((struct ide_atapi_pc *) failed_cmd->special)->scsi_cmd; 234 pc->scsi_cmd = ((struct ide_atapi_pc *) failed_cmd->special)->scsi_cmd;
@@ -465,6 +464,9 @@ static void idescsi_setup (ide_drive_t *drive, idescsi_scsi_t *scsi)
465#if IDESCSI_DEBUG_LOG 464#if IDESCSI_DEBUG_LOG
466 set_bit(IDESCSI_LOG_CMD, &scsi->log); 465 set_bit(IDESCSI_LOG_CMD, &scsi->log);
467#endif /* IDESCSI_DEBUG_LOG */ 466#endif /* IDESCSI_DEBUG_LOG */
467
468 drive->pc_callback = ide_scsi_callback;
469
468 idescsi_add_settings(drive); 470 idescsi_add_settings(drive);
469} 471}
470 472
@@ -616,7 +618,6 @@ static int idescsi_queue (struct scsi_cmnd *cmd,
616 pc->scsi_cmd = cmd; 618 pc->scsi_cmd = cmd;
617 pc->done = done; 619 pc->done = done;
618 pc->timeout = jiffies + cmd->timeout_per_command; 620 pc->timeout = jiffies + cmd->timeout_per_command;
619 pc->callback = ide_scsi_callback;
620 621
621 if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) { 622 if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
622 printk ("ide-scsi: %s: que %lu, cmd = ", drive->name, cmd->serial_number); 623 printk ("ide-scsi: %s: que %lu, cmd = ", drive->name, cmd->serial_number);