aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2008-08-24 21:50:00 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-10-13 09:28:53 -0400
commitd7c255b26d8e3f12164d82093de3bf22efad2b4a (patch)
tree0b3467eda322ec2d90e5a7369891ab4ba12ff0a1 /drivers/scsi/lpfc/lpfc_hbadisc.c
parent34b02dcdcf1865405f4762b991965c0c3b8a3ae0 (diff)
[SCSI] lpfc 8.2.8 : Miscellaneous Bug Fixes
Miscellaneous Fixes: - Fix the wrong variable name used for checking node active usage status - Fix numerous duplicate log message numbers - Fix change KERN_WARNING messages to KERN_INFO. - Stop sending erroneous LOGO to fabric after vport is already terminated - Fix HBQ allocates that were kalloc'ing w/ GFP_KERNEL while holding a lock. - Fix gcc 4.3.2 compiler warnings and a sparse warning - Fix bugs in handling unsolicited ct event queue - Reorder some of the initial link up checks, to remove odd VPI states. - Correct poor VPI handling - Add debug messages - Expand Update_CFG mailbox definition - Fix handling of VPD data offsets - Reorder loopback flags - convert to use offsetof() Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index aaf398e5c93f..72c1cf15ef2b 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -207,8 +207,16 @@ lpfc_dev_loss_tmo_handler(struct lpfc_nodelist *ndlp)
207 return; 207 return;
208 } 208 }
209 209
210 if (ndlp->nlp_state == NLP_STE_MAPPED_NODE) 210 if (ndlp->nlp_state == NLP_STE_MAPPED_NODE) {
211 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
212 "0284 Devloss timeout Ignored on "
213 "WWPN %x:%x:%x:%x:%x:%x:%x:%x "
214 "NPort x%x\n",
215 *name, *(name+1), *(name+2), *(name+3),
216 *(name+4), *(name+5), *(name+6), *(name+7),
217 ndlp->nlp_DID);
211 return; 218 return;
219 }
212 220
213 if (ndlp->nlp_type & NLP_FABRIC) { 221 if (ndlp->nlp_type & NLP_FABRIC) {
214 /* We will clean up these Nodes in linkup */ 222 /* We will clean up these Nodes in linkup */
@@ -1169,7 +1177,7 @@ lpfc_mbx_cmpl_unreg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
1169 scsi_host_put(shost); 1177 scsi_host_put(shost);
1170} 1178}
1171 1179
1172void 1180int
1173lpfc_mbx_unreg_vpi(struct lpfc_vport *vport) 1181lpfc_mbx_unreg_vpi(struct lpfc_vport *vport)
1174{ 1182{
1175 struct lpfc_hba *phba = vport->phba; 1183 struct lpfc_hba *phba = vport->phba;
@@ -1178,7 +1186,7 @@ lpfc_mbx_unreg_vpi(struct lpfc_vport *vport)
1178 1186
1179 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); 1187 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
1180 if (!mbox) 1188 if (!mbox)
1181 return; 1189 return 1;
1182 1190
1183 lpfc_unreg_vpi(phba, vport->vpi, mbox); 1191 lpfc_unreg_vpi(phba, vport->vpi, mbox);
1184 mbox->vport = vport; 1192 mbox->vport = vport;
@@ -1189,7 +1197,9 @@ lpfc_mbx_unreg_vpi(struct lpfc_vport *vport)
1189 "1800 Could not issue unreg_vpi\n"); 1197 "1800 Could not issue unreg_vpi\n");
1190 mempool_free(mbox, phba->mbox_mem_pool); 1198 mempool_free(mbox, phba->mbox_mem_pool);
1191 vport->unreg_vpi_cmpl = VPORT_ERROR; 1199 vport->unreg_vpi_cmpl = VPORT_ERROR;
1200 return rc;
1192 } 1201 }
1202 return 0;
1193} 1203}
1194 1204
1195static void 1205static void
@@ -2778,7 +2788,7 @@ restart_disc:
2778 2788
2779 default: 2789 default:
2780 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY, 2790 lpfc_printf_vlog(vport, KERN_ERR, LOG_DISCOVERY,
2781 "0229 Unexpected discovery timeout, " 2791 "0273 Unexpected discovery timeout, "
2782 "vport State x%x\n", vport->port_state); 2792 "vport State x%x\n", vport->port_state);
2783 break; 2793 break;
2784 } 2794 }