aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2009-10-02 15:16:51 -0400
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:01:41 -0500
commit6a9c52cf22e4ca13816bb2bd9899129cd4445de7 (patch)
tree02c44960d58fbaada692062ed96287425d0cd853 /drivers/scsi/lpfc/lpfc_hbadisc.c
parent6669f9bb902b8c3f5e33cb8c32c8c0eec6ed68ed (diff)
[SCSI] lpfc 8.3.5: fix sysfs parameters, vport creation and other bugs and update logging
This patch include the following fixes and changes: - Fix crash when "error" is echoed to board_mode sysfs parameter - Fix FCoE Parameter parsing in regions 23 - Fix driver crash when creating vport with large number of targets on SLI4 - Fix bug with npiv message being logged when it is not supported by the adapter - Fix a potential dereferencing mailbox structure after free bug - Fix firmware crash after vport create with high target count - Error out requests to set board_mode to warm restart via sysfs on SLI4 HBAs - Fix Block guard logging - Fix a memory corruption issue during GID_FT IO prep - Fix crash while processing unsolicited FC frames - Fix failed to allocate XRI message is not a critical failure - Update and fix formatting in some log messages - Fix missing new line characters in log messages - Removed the use of the locally defined FC transport layer related macros - Check the rsplen in lpfc_handle_fcp_err function before using rsplen Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 1b2771ac15f2..e8689cabe5f7 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1699,9 +1699,8 @@ lpfc_init_vpi_cmpl(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
1699 lpfc_initial_fdisc(vport); 1699 lpfc_initial_fdisc(vport);
1700 else { 1700 else {
1701 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP); 1701 lpfc_vport_set_state(vport, FC_VPORT_NO_FABRIC_SUPP);
1702 lpfc_printf_vlog(vport, KERN_ERR, 1702 lpfc_printf_vlog(vport, KERN_ERR, LOG_ELS,
1703 LOG_ELS, 1703 "2606 No NPIV Fabric support\n");
1704 "2606 No NPIV Fabric support\n");
1705 } 1704 }
1706 return; 1705 return;
1707} 1706}
@@ -1901,7 +1900,10 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la)
1901 if (phba->fc_topology == TOPOLOGY_LOOP) { 1900 if (phba->fc_topology == TOPOLOGY_LOOP) {
1902 phba->sli3_options &= ~LPFC_SLI3_NPIV_ENABLED; 1901 phba->sli3_options &= ~LPFC_SLI3_NPIV_ENABLED;
1903 1902
1904 if (phba->cfg_enable_npiv) 1903 /* if npiv is enabled and this adapter supports npiv log
1904 * a message that npiv is not supported in this topology
1905 */
1906 if (phba->cfg_enable_npiv && phba->max_vpi)
1905 lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, 1907 lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT,
1906 "1309 Link Up Event npiv not supported in loop " 1908 "1309 Link Up Event npiv not supported in loop "
1907 "topology\n"); 1909 "topology\n");
@@ -3118,7 +3120,7 @@ lpfc_no_rpi(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
3118 struct lpfc_sli *psli; 3120 struct lpfc_sli *psli;
3119 struct lpfc_sli_ring *pring; 3121 struct lpfc_sli_ring *pring;
3120 struct lpfc_iocbq *iocb, *next_iocb; 3122 struct lpfc_iocbq *iocb, *next_iocb;
3121 uint32_t rpi, i; 3123 uint32_t i;
3122 3124
3123 lpfc_fabric_abort_nport(ndlp); 3125 lpfc_fabric_abort_nport(ndlp);
3124 3126
@@ -3127,7 +3129,6 @@ lpfc_no_rpi(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp)
3127 * by firmware with a no rpi error. 3129 * by firmware with a no rpi error.
3128 */ 3130 */
3129 psli = &phba->sli; 3131 psli = &phba->sli;
3130 rpi = ndlp->nlp_rpi;
3131 if (ndlp->nlp_flag & NLP_RPI_VALID) { 3132 if (ndlp->nlp_flag & NLP_RPI_VALID) {
3132 /* Now process each ring */ 3133 /* Now process each ring */
3133 for (i = 0; i < psli->num_rings; i++) { 3134 for (i = 0; i < psli->num_rings; i++) {