aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <matthew.r.wilcox@intel.com>2014-03-27 16:40:31 -0400
committerChristoph Hellwig <hch@lst.de>2014-05-28 12:13:22 -0400
commitd8bfbd8d333f84f7c72a0e5f5979291ad8438dbb (patch)
treeab7512887a1be5e2e67a8db4a16ec81981433139
parentc62e46de342d604f72347bd27dcf58b144ad8036 (diff)
mpt3sas: Remove use of DEF_SCSI_QCMD
Removing the host_lock from the I/O submission path gives a huge scalability improvement. Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com> Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org> Reviewed-by: Praveen Krishnamoorthy <Praveen.krishnamoorthy@lsi.com> Acked-by: Sreekanth Reddy <Sreekanth.reddy@lsi.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_scsih.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index 952f6e0d5fd1..18e713db1d32 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -3515,7 +3515,7 @@ _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status)
3515 3515
3516 3516
3517/** 3517/**
3518 * _scsih_qcmd_lck - main scsi request entry point 3518 * _scsih_qcmd - main scsi request entry point
3519 * @scmd: pointer to scsi command object 3519 * @scmd: pointer to scsi command object
3520 * @done: function pointer to be invoked on completion 3520 * @done: function pointer to be invoked on completion
3521 * 3521 *
@@ -3526,9 +3526,9 @@ _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status)
3526 * SCSI_MLQUEUE_HOST_BUSY if the entire host queue is full 3526 * SCSI_MLQUEUE_HOST_BUSY if the entire host queue is full
3527 */ 3527 */
3528static int 3528static int
3529_scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *)) 3529_scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
3530{ 3530{
3531 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); 3531 struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
3532 struct MPT3SAS_DEVICE *sas_device_priv_data; 3532 struct MPT3SAS_DEVICE *sas_device_priv_data;
3533 struct MPT3SAS_TARGET *sas_target_priv_data; 3533 struct MPT3SAS_TARGET *sas_target_priv_data;
3534 Mpi2SCSIIORequest_t *mpi_request; 3534 Mpi2SCSIIORequest_t *mpi_request;
@@ -3541,7 +3541,6 @@ _scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))
3541 scsi_print_command(scmd); 3541 scsi_print_command(scmd);
3542#endif 3542#endif
3543 3543
3544 scmd->scsi_done = done;
3545 sas_device_priv_data = scmd->device->hostdata; 3544 sas_device_priv_data = scmd->device->hostdata;
3546 if (!sas_device_priv_data || !sas_device_priv_data->sas_target) { 3545 if (!sas_device_priv_data || !sas_device_priv_data->sas_target) {
3547 scmd->result = DID_NO_CONNECT << 16; 3546 scmd->result = DID_NO_CONNECT << 16;
@@ -3656,8 +3655,6 @@ _scsih_qcmd_lck(struct scsi_cmnd *scmd, void (*done)(struct scsi_cmnd *))
3656 out: 3655 out:
3657 return SCSI_MLQUEUE_HOST_BUSY; 3656 return SCSI_MLQUEUE_HOST_BUSY;
3658} 3657}
3659static DEF_SCSI_QCMD(_scsih_qcmd)
3660
3661 3658
3662/** 3659/**
3663 * _scsih_normalize_sense - normalize descriptor and fixed format sense data 3660 * _scsih_normalize_sense - normalize descriptor and fixed format sense data