aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2008-02-08 18:49:39 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-02-11 18:52:57 -0500
commit1b32f6aa9935ab88eac0d608a4b06369f5d9064a (patch)
treedfca777d4fcd442d33643536963c259a15d67662 /drivers/scsi/lpfc/lpfc_hbadisc.c
parente47c9093531d3406a8ae38acca4ce207ef70cc0e (diff)
[SCSI] lpfc 8.2.5 : Miscellaneous Fixes
Miscellaneous fixes: - Fix ERRATT flag which was overlapping - Allow RESTART mbx commands through when stopped. - Accept incoming PLOGI when connected to an N_Port. - Fix NPort to NPort pt2pt problems: ADISC and reg_vpi issues - Fix vport unloading error that erroneously cleaned up RSCN buffers - Fix memory leak during repeated unloads - in mbox handling - Fix link bounce vs FLOGI race conditions 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.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 1ee3e62c78a7..25892671bfb0 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -800,21 +800,9 @@ lpfc_mbx_cmpl_clear_la(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
800 writel(control, phba->HCregaddr); 800 writel(control, phba->HCregaddr);
801 readl(phba->HCregaddr); /* flush */ 801 readl(phba->HCregaddr); /* flush */
802 spin_unlock_irq(&phba->hbalock); 802 spin_unlock_irq(&phba->hbalock);
803 mempool_free(pmb, phba->mbox_mem_pool);
803 return; 804 return;
804 805
805 vport->num_disc_nodes = 0;
806 /* go thru NPR nodes and issue ELS PLOGIs */
807 if (vport->fc_npr_cnt)
808 lpfc_els_disc_plogi(vport);
809
810 if (!vport->num_disc_nodes) {
811 spin_lock_irq(shost->host_lock);
812 vport->fc_flag &= ~FC_NDISC_ACTIVE;
813 spin_unlock_irq(shost->host_lock);
814 }
815
816 vport->port_state = LPFC_VPORT_READY;
817
818out: 806out:
819 /* Device Discovery completes */ 807 /* Device Discovery completes */
820 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, 808 lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY,
@@ -2484,6 +2472,7 @@ lpfc_disc_start(struct lpfc_vport *vport)
2484 * continue discovery. 2472 * continue discovery.
2485 */ 2473 */
2486 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) && 2474 if ((phba->sli3_options & LPFC_SLI3_NPIV_ENABLED) &&
2475 !(vport->fc_flag & FC_PT2PT) &&
2487 !(vport->fc_flag & FC_RSCN_MODE)) { 2476 !(vport->fc_flag & FC_RSCN_MODE)) {
2488 lpfc_issue_reg_vpi(phba, vport); 2477 lpfc_issue_reg_vpi(phba, vport);
2489 return; 2478 return;