diff options
author | Matthew Wilcox <matthew.r.wilcox@intel.com> | 2014-03-27 16:40:31 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-05-28 12:13:22 -0400 |
commit | d8bfbd8d333f84f7c72a0e5f5979291ad8438dbb (patch) | |
tree | ab7512887a1be5e2e67a8db4a16ec81981433139 | |
parent | c62e46de342d604f72347bd27dcf58b144ad8036 (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.c | 9 |
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 | */ |
3528 | static int | 3528 | static 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 | } |
3659 | static 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 |