aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2013-04-17 20:19:44 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-05-02 16:13:11 -0400
commit88f43a08672381fa46ed9a82320023408d99a62b (patch)
treeddd5fe12a75a45f58a94a23135b0f286093e9f86
parent1877570825ed4e2d0b372c2afc142dfe7109bfc6 (diff)
[SCSI] lpfc 8.3.39: Reduced tmo value set to FLOGI WQE for quick recovery from FLOGI sequence timeout
Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c9
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c7
-rw-r--r--drivers/scsi/lpfc/lpfc_sli.c11
3 files changed, 17 insertions, 10 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 79de8f26a2db..3cae0a92e8bd 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -239,7 +239,10 @@ lpfc_prep_els_iocb(struct lpfc_vport *vport, uint8_t expectRsp,
239 239
240 icmd->un.elsreq64.remoteID = did; /* DID */ 240 icmd->un.elsreq64.remoteID = did; /* DID */
241 icmd->ulpCommand = CMD_ELS_REQUEST64_CR; 241 icmd->ulpCommand = CMD_ELS_REQUEST64_CR;
242 icmd->ulpTimeout = phba->fc_ratov * 2; 242 if (elscmd == ELS_CMD_FLOGI)
243 icmd->ulpTimeout = FF_DEF_RATOV * 2;
244 else
245 icmd->ulpTimeout = phba->fc_ratov * 2;
243 } else { 246 } else {
244 icmd->un.xseq64.bdl.addrHigh = putPaddrHigh(pbuflist->phys); 247 icmd->un.xseq64.bdl.addrHigh = putPaddrHigh(pbuflist->phys);
245 icmd->un.xseq64.bdl.addrLow = putPaddrLow(pbuflist->phys); 248 icmd->un.xseq64.bdl.addrLow = putPaddrLow(pbuflist->phys);
@@ -1086,8 +1089,8 @@ stop_rr_fcf_flogi:
1086 1089
1087 /* FLOGI completes successfully */ 1090 /* FLOGI completes successfully */
1088 lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS, 1091 lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS,
1089 "0101 FLOGI completes successfully " 1092 "0101 FLOGI completes successfully, I/O tag:x%x, "
1090 "Data: x%x x%x x%x x%x x%x x%x\n", 1093 "Data: x%x x%x x%x x%x x%x x%x\n", cmdiocb->iotag,
1091 irsp->un.ulpWord[4], sp->cmn.e_d_tov, 1094 irsp->un.ulpWord[4], sp->cmn.e_d_tov,
1092 sp->cmn.w2.r_a_tov, sp->cmn.edtovResolution, 1095 sp->cmn.w2.r_a_tov, sp->cmn.edtovResolution,
1093 vport->port_state, vport->fc_flag); 1096 vport->port_state, vport->fc_flag);
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 3faa0a92331a..58379ffa97b8 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -2272,8 +2272,11 @@ lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
2272 spin_unlock_irq(&phba->hbalock); 2272 spin_unlock_irq(&phba->hbalock);
2273 lpfc_printf_log(phba, KERN_INFO, LOG_FIP, 2273 lpfc_printf_log(phba, KERN_INFO, LOG_FIP,
2274 "2836 New FCF matches in-use " 2274 "2836 New FCF matches in-use "
2275 "FCF (x%x)\n", 2275 "FCF (x%x), port_state:x%x, "
2276 phba->fcf.current_rec.fcf_indx); 2276 "fc_flag:x%x\n",
2277 phba->fcf.current_rec.fcf_indx,
2278 phba->pport->port_state,
2279 phba->pport->fc_flag);
2277 goto out; 2280 goto out;
2278 } else 2281 } else
2279 lpfc_printf_log(phba, KERN_ERR, LOG_FIP, 2282 lpfc_printf_log(phba, KERN_ERR, LOG_FIP,
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
index 94b017ee9aa3..572579f87de4 100644
--- a/drivers/scsi/lpfc/lpfc_sli.c
+++ b/drivers/scsi/lpfc/lpfc_sli.c
@@ -13992,13 +13992,14 @@ lpfc_fc_frame_check(struct lpfc_hba *phba, struct fc_frame_header *fc_hdr)
13992 } 13992 }
13993 13993
13994 lpfc_printf_log(phba, KERN_INFO, LOG_ELS, 13994 lpfc_printf_log(phba, KERN_INFO, LOG_ELS,
13995 "2538 Received frame rctl:%s type:%s " 13995 "2538 Received frame rctl:%s (x%x), type:%s (x%x), "
13996 "Frame Data:%08x %08x %08x %08x %08x %08x\n", 13996 "frame Data:%08x %08x %08x %08x %08x %08x %08x\n",
13997 rctl_names[fc_hdr->fh_r_ctl], 13997 rctl_names[fc_hdr->fh_r_ctl], fc_hdr->fh_r_ctl,
13998 type_names[fc_hdr->fh_type], 13998 type_names[fc_hdr->fh_type], fc_hdr->fh_type,
13999 be32_to_cpu(header[0]), be32_to_cpu(header[1]), 13999 be32_to_cpu(header[0]), be32_to_cpu(header[1]),
14000 be32_to_cpu(header[2]), be32_to_cpu(header[3]), 14000 be32_to_cpu(header[2]), be32_to_cpu(header[3]),
14001 be32_to_cpu(header[4]), be32_to_cpu(header[5])); 14001 be32_to_cpu(header[4]), be32_to_cpu(header[5]),
14002 be32_to_cpu(header[6]));
14002 return 0; 14003 return 0;
14003drop: 14004drop:
14004 lpfc_printf_log(phba, KERN_WARNING, LOG_ELS, 14005 lpfc_printf_log(phba, KERN_WARNING, LOG_ELS,