aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_vport.c
diff options
context:
space:
mode:
authorJames Smart <James.Smart@Emulex.Com>2008-01-11 01:52:54 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-23 12:29:22 -0500
commit0937282036d9ae798e02c9c69a8b2ef044048855 (patch)
tree55c8ef65c9c55e74e8985b58396516b3d3b925ad /drivers/scsi/lpfc/lpfc_vport.c
parent13815c8344a238c204e4f4339b22dc4833c6df0f (diff)
[SCSI] lpfc 8.2.4 : Miscellaneous Fixes
Miscellaneous Fixes: - Fix a couple of sparse complaints - Reset the FCP recovery flag when the node is not a FCP2 device. - Speed up offline prep delays - Fixed a memory leak in lpfc_mem_alloc failure path - Fixed external loopback test. - Fixed error code returned from the driver when HBA is over heated. - Correct Max NPIV vport to limits read from adapter - Add missing locks around fc_flag and FC_NEEDS_REG_VPI - Add missing hba ids for device identification - Added support for SET_VARIABLE and MBX_WRITE_WWN mailbox commands - Changed all temperature event messages from warning to error - Fix reporting of link speed when link is down - Added support for MBX_WRITE_WWN mailbox command - Change del_timer_sync() in ISR to del_timer() in interrupt handler - Correct instances of beXX_to_cpu() that should be cpu_to_beXX() - Perform target flush before releasing node references on module unload - Avoid bogus devloss_tmo messages when driver unloads - Fix panic when HBA generates ERATT interupt - Fix mbox race condition and a workaround on back-to-back mailbox commands - Force NPIV off for pt2pt mode between 2 NPorts - Stop worker thread before removing fc_host. - Fix up discovery timeout error case due to missing clear_la - Tighten mailbox polling code to speed up detection of fast completions - Only allow DUMP_MEMORY if adapter offline due to overtemp errors - Added extended error information to the log messages in chip init. 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.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index 07a28700cbe7..9fad7663c117 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -562,7 +562,7 @@ lpfc_create_vport_work_array(struct lpfc_hba *phba)
562 struct lpfc_vport *port_iterator; 562 struct lpfc_vport *port_iterator;
563 struct lpfc_vport **vports; 563 struct lpfc_vport **vports;
564 int index = 0; 564 int index = 0;
565 vports = kzalloc(LPFC_MAX_VPORTS * sizeof(struct lpfc_vport *), 565 vports = kzalloc((phba->max_vpi + 1) * sizeof(struct lpfc_vport *),
566 GFP_KERNEL); 566 GFP_KERNEL);
567 if (vports == NULL) 567 if (vports == NULL)
568 return NULL; 568 return NULL;
@@ -581,12 +581,12 @@ lpfc_create_vport_work_array(struct lpfc_hba *phba)
581} 581}
582 582
583void 583void
584lpfc_destroy_vport_work_array(struct lpfc_vport **vports) 584lpfc_destroy_vport_work_array(struct lpfc_hba *phba, struct lpfc_vport **vports)
585{ 585{
586 int i; 586 int i;
587 if (vports == NULL) 587 if (vports == NULL)
588 return; 588 return;
589 for (i=0; vports[i] != NULL && i < LPFC_MAX_VPORTS; i++) 589 for (i=0; vports[i] != NULL && i <= phba->max_vpi; i++)
590 scsi_host_put(lpfc_shost_from_vport(vports[i])); 590 scsi_host_put(lpfc_shost_from_vport(vports[i]));
591 kfree(vports); 591 kfree(vports);
592} 592}