diff options
author | James Smart <James.Smart@Emulex.Com> | 2008-01-11 01:52:54 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-01-23 12:29:22 -0500 |
commit | 0937282036d9ae798e02c9c69a8b2ef044048855 (patch) | |
tree | 55c8ef65c9c55e74e8985b58396516b3d3b925ad /drivers/scsi/lpfc/lpfc_vport.c | |
parent | 13815c8344a238c204e4f4339b22dc4833c6df0f (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.c | 6 |
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 | ||
583 | void | 583 | void |
584 | lpfc_destroy_vport_work_array(struct lpfc_vport **vports) | 584 | lpfc_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 | } |