aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_vport.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2007-10-27 13:37:17 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-11 19:22:31 -0500
commit7ee5d43e2ea25336a7638715420c75583bd2ed69 (patch)
tree2687f4508fa05465b231a61e606b1063c944d107 /drivers/scsi/lpfc/lpfc_vport.c
parent57127f157298ea2dacbbc878a3c5d2a5daca772c (diff)
[SCSI] lpfc 8.2.3 : NPIV bug fixes
NPIV bug fixes: - Remove vport params on physical hba when npiv is disabled - Implement new DA_ID CT command to remove vport information from the switch after delete. Some switches didn't clean this up unless the physical link dropped. 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_vport.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_vport.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index dcb415e717c..3b705ccc771 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -482,8 +482,18 @@ lpfc_vport_delete(struct fc_vport *fc_vport)
482 482
483 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID); 483 ndlp = lpfc_findnode_did(phba->pport, Fabric_DID);
484 if (ndlp && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE && 484 if (ndlp && ndlp->nlp_state == NLP_STE_UNMAPPED_NODE &&
485 phba->link_state >= LPFC_LINK_UP) { 485 phba->link_state >= LPFC_LINK_UP) {
486 486 if (vport->cfg_enable_da_id) {
487 timeout = msecs_to_jiffies(phba->fc_ratov * 2000);
488 if (!lpfc_ns_cmd(vport, SLI_CTNS_DA_ID, 0, 0))
489 while (vport->ct_flags && timeout)
490 timeout = schedule_timeout(timeout);
491 else
492 lpfc_printf_log(vport->phba, KERN_WARNING,
493 LOG_VPORT,
494 "1829 CT command failed to "
495 "delete objects on fabric. \n");
496 }
487 /* First look for the Fabric ndlp */ 497 /* First look for the Fabric ndlp */
488 ndlp = lpfc_findnode_did(vport, Fabric_DID); 498 ndlp = lpfc_findnode_did(vport, Fabric_DID);
489 if (!ndlp) { 499 if (!ndlp) {