aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2013-09-06 12:22:46 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-09-10 20:32:36 -0400
commit0c4112223cc947992186f13837747c3b259bd31d (patch)
treebf26dc7f1837580c7750345df5739eb6ba4b1b41 /drivers/scsi
parent164cecd1b9aed821d29ee9543ea4ad7435321823 (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.h1
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c8
-rw-r--r--drivers/scsi/lpfc/lpfc_scsi.c2
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*/
4121LPFC_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,