diff options
author | James Smart <james.smart@emulex.com> | 2013-09-06 12:22:46 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-09-10 20:32:36 -0400 |
commit | 0c4112223cc947992186f13837747c3b259bd31d (patch) | |
tree | bf26dc7f1837580c7750345df5739eb6ba4b1b41 /drivers/scsi | |
parent | 164cecd1b9aed821d29ee9543ea4ad7435321823 (diff) |
[SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/lpfc/lpfc.h | 1 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_attr.c | 8 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_scsi.c | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h index df43bfe6d573..4e1b75ca7451 100644 --- a/drivers/scsi/lpfc/lpfc.h +++ b/drivers/scsi/lpfc/lpfc.h | |||
@@ -708,6 +708,7 @@ struct lpfc_hba { | |||
708 | uint32_t cfg_multi_ring_type; | 708 | uint32_t cfg_multi_ring_type; |
709 | uint32_t cfg_poll; | 709 | uint32_t cfg_poll; |
710 | uint32_t cfg_poll_tmo; | 710 | uint32_t cfg_poll_tmo; |
711 | uint32_t cfg_task_mgmt_tmo; | ||
711 | uint32_t cfg_use_msi; | 712 | uint32_t cfg_use_msi; |
712 | uint32_t cfg_fcp_imax; | 713 | uint32_t cfg_fcp_imax; |
713 | uint32_t cfg_fcp_cpu_map; | 714 | uint32_t cfg_fcp_cpu_map; |
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index ad80f9ca2dbb..c6fd42a20674 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -4115,6 +4115,12 @@ LPFC_ATTR_RW(poll_tmo, 10, 1, 255, | |||
4115 | "Milliseconds driver will wait between polling FCP ring"); | 4115 | "Milliseconds driver will wait between polling FCP ring"); |
4116 | 4116 | ||
4117 | /* | 4117 | /* |
4118 | # lpfc_task_mgmt_tmo: Maximum time to wait for task management commands | ||
4119 | # to complete in seconds. Value range is [5,180], default value is 60. | ||
4120 | */ | ||
4121 | LPFC_ATTR_RW(task_mgmt_tmo, 60, 5, 180, | ||
4122 | "Maximum time to wait for task management commands to complete"); | ||
4123 | /* | ||
4118 | # lpfc_use_msi: Use MSI (Message Signaled Interrupts) in systems that | 4124 | # lpfc_use_msi: Use MSI (Message Signaled Interrupts) in systems that |
4119 | # support this feature | 4125 | # support this feature |
4120 | # 0 = MSI disabled | 4126 | # 0 = MSI disabled |
@@ -4300,6 +4306,7 @@ struct device_attribute *lpfc_hba_attrs[] = { | |||
4300 | &dev_attr_issue_reset, | 4306 | &dev_attr_issue_reset, |
4301 | &dev_attr_lpfc_poll, | 4307 | &dev_attr_lpfc_poll, |
4302 | &dev_attr_lpfc_poll_tmo, | 4308 | &dev_attr_lpfc_poll_tmo, |
4309 | &dev_attr_lpfc_task_mgmt_tmo, | ||
4303 | &dev_attr_lpfc_use_msi, | 4310 | &dev_attr_lpfc_use_msi, |
4304 | &dev_attr_lpfc_fcp_imax, | 4311 | &dev_attr_lpfc_fcp_imax, |
4305 | &dev_attr_lpfc_fcp_cpu_map, | 4312 | &dev_attr_lpfc_fcp_cpu_map, |
@@ -5279,6 +5286,7 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) | |||
5279 | lpfc_topology_init(phba, lpfc_topology); | 5286 | lpfc_topology_init(phba, lpfc_topology); |
5280 | lpfc_link_speed_init(phba, lpfc_link_speed); | 5287 | lpfc_link_speed_init(phba, lpfc_link_speed); |
5281 | lpfc_poll_tmo_init(phba, lpfc_poll_tmo); | 5288 | lpfc_poll_tmo_init(phba, lpfc_poll_tmo); |
5289 | lpfc_task_mgmt_tmo_init(phba, lpfc_task_mgmt_tmo); | ||
5282 | lpfc_enable_npiv_init(phba, lpfc_enable_npiv); | 5290 | lpfc_enable_npiv_init(phba, lpfc_enable_npiv); |
5283 | lpfc_fcf_failover_policy_init(phba, lpfc_fcf_failover_policy); | 5291 | lpfc_fcf_failover_policy_init(phba, lpfc_fcf_failover_policy); |
5284 | lpfc_enable_rrq_init(phba, lpfc_enable_rrq); | 5292 | lpfc_enable_rrq_init(phba, lpfc_enable_rrq); |
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index 556bc7a54a1f..c913e8cc3b26 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c | |||
@@ -5015,7 +5015,7 @@ lpfc_send_taskmgmt(struct lpfc_vport *vport, struct lpfc_rport_data *rdata, | |||
5015 | lpfc_cmd = lpfc_get_scsi_buf(phba, rdata->pnode); | 5015 | lpfc_cmd = lpfc_get_scsi_buf(phba, rdata->pnode); |
5016 | if (lpfc_cmd == NULL) | 5016 | if (lpfc_cmd == NULL) |
5017 | return FAILED; | 5017 | return FAILED; |
5018 | lpfc_cmd->timeout = 60; | 5018 | lpfc_cmd->timeout = phba->cfg_task_mgmt_tmo; |
5019 | lpfc_cmd->rdata = rdata; | 5019 | lpfc_cmd->rdata = rdata; |
5020 | 5020 | ||
5021 | status = lpfc_scsi_prep_task_mgmt_cmd(vport, lpfc_cmd, lun_id, | 5021 | status = lpfc_scsi_prep_task_mgmt_cmd(vport, lpfc_cmd, lun_id, |