|
@@ -850,8 +850,6 @@ static void ipr_do_req(struct ipr_cmnd *ipr_cmd,
|
|
|
|
|
|
ipr_trc_hook(ipr_cmd, IPR_TRACE_START, 0);
|
|
ipr_trc_hook(ipr_cmd, IPR_TRACE_START, 0);
|
|
|
|
|
|
- mb();
|
|
|
|
-
|
|
|
|
ipr_send_command(ipr_cmd);
|
|
ipr_send_command(ipr_cmd);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -985,8 +983,6 @@ static void ipr_send_hcam(struct ipr_ioa_cfg *ioa_cfg, u8 type,
|
|
|
|
|
|
ipr_trc_hook(ipr_cmd, IPR_TRACE_START, IPR_IOA_RES_ADDR);
|
|
ipr_trc_hook(ipr_cmd, IPR_TRACE_START, IPR_IOA_RES_ADDR);
|
|
|
|
|
|
- mb();
|
|
|
|
-
|
|
|
|
ipr_send_command(ipr_cmd);
|
|
ipr_send_command(ipr_cmd);
|
|
} else {
|
|
} else {
|
|
list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
|
|
list_add_tail(&hostrcb->queue, &ioa_cfg->hostrcb_free_q);
|
|
@@ -5863,14 +5859,12 @@ static int ipr_queuecommand_lck(struct scsi_cmnd *scsi_cmd,
|
|
rc = ipr_build_ioadl(ioa_cfg, ipr_cmd);
|
|
rc = ipr_build_ioadl(ioa_cfg, ipr_cmd);
|
|
}
|
|
}
|
|
|
|
|
|
- if (likely(rc == 0)) {
|
|
|
|
- mb();
|
|
|
|
- ipr_send_command(ipr_cmd);
|
|
|
|
- } else {
|
|
|
|
- list_move_tail(&ipr_cmd->queue, &ioa_cfg->free_q);
|
|
|
|
- return SCSI_MLQUEUE_HOST_BUSY;
|
|
|
|
|
|
+ if (unlikely(rc != 0)) {
|
|
|
|
+ list_move_tail(&ipr_cmd->queue, &ioa_cfg->free_q);
|
|
|
|
+ return SCSI_MLQUEUE_HOST_BUSY;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ipr_send_command(ipr_cmd);
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -6248,8 +6242,6 @@ static unsigned int ipr_qc_issue(struct ata_queued_cmd *qc)
|
|
return AC_ERR_INVALID;
|
|
return AC_ERR_INVALID;
|
|
}
|
|
}
|
|
|
|
|
|
- mb();
|
|
|
|
-
|
|
|
|
ipr_send_command(ipr_cmd);
|
|
ipr_send_command(ipr_cmd);
|
|
|
|
|
|
return 0;
|
|
return 0;
|