diff options
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 720330778648..9f3cc7b7123d 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -243,6 +243,7 @@ static struct aac_driver_ident aac_drivers[] = { | |||
243 | static int aac_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) | 243 | static int aac_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) |
244 | { | 244 | { |
245 | cmd->scsi_done = done; | 245 | cmd->scsi_done = done; |
246 | cmd->SCp.phase = AAC_OWNER_LOWLEVEL; | ||
246 | return (aac_scsi_cmd(cmd) ? FAILED : 0); | 247 | return (aac_scsi_cmd(cmd) ? FAILED : 0); |
247 | } | 248 | } |
248 | 249 | ||
@@ -471,7 +472,8 @@ static int aac_eh_reset(struct scsi_cmnd* cmd) | |||
471 | __shost_for_each_device(dev, host) { | 472 | __shost_for_each_device(dev, host) { |
472 | spin_lock_irqsave(&dev->list_lock, flags); | 473 | spin_lock_irqsave(&dev->list_lock, flags); |
473 | list_for_each_entry(command, &dev->cmd_list, list) { | 474 | list_for_each_entry(command, &dev->cmd_list, list) { |
474 | if (command->serial_number) { | 475 | if ((command != cmd) && |
476 | (command->SCp.phase == AAC_OWNER_FIRMWARE)) { | ||
475 | active++; | 477 | active++; |
476 | break; | 478 | break; |
477 | } | 479 | } |