diff options
author | James Smart <James.Smart@Emulex.Com> | 2007-06-17 20:56:39 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-06-17 23:38:11 -0400 |
commit | 858c9f6c19c6f9bf86cbbc64ce0d17c61d6131b8 (patch) | |
tree | 9591b15b4424066023e375ad0aa33fdd37e1c452 /drivers/scsi/lpfc/lpfc_mbox.c | |
parent | 92d7f7b0cde3ad2260e7462b40867b57efd49851 (diff) |
[SCSI] lpfc: bug fixes
Following the NPIV support, the following changes have been accumulated
in the testing and qualification of the driver:
- Fix affinity of ELS ring to slow/deferred event processing
- Fix Ring attention masks
- Defer dev_loss_tmo timeout handling to worker thread
- Consolidate link down error classification for better error checking
- Remove unused/deprecated nlp_initiator_tmr timer
- Fix for async scan - move adapter init code back into pci_probe_one
context. Fix async scan interfaces.
- Expand validation of ability to create vports
- Extract VPI resource cnt from firmware
- Tuning of Login/Reject policies to better deal with overwhelmned targets
- Misc ELS and discovery fixes
- Export the npiv_enable attribute to sysfs
- Mailbox handling fix
- Add debugfs support
- A few other small misc fixes:
- wrong return values, double-frees, bad locking
- Added adapter failure heartbeat
Signed-off-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_mbox.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_mbox.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c index 277eb6132e81..8f42fbfdd29e 100644 --- a/drivers/scsi/lpfc/lpfc_mbox.c +++ b/drivers/scsi/lpfc/lpfc_mbox.c | |||
@@ -82,6 +82,22 @@ lpfc_read_nv(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | |||
82 | } | 82 | } |
83 | 83 | ||
84 | /**********************************************/ | 84 | /**********************************************/ |
85 | /* lpfc_heart_beat Issue a HEART_BEAT */ | ||
86 | /* mailbox command */ | ||
87 | /**********************************************/ | ||
88 | void | ||
89 | lpfc_heart_beat(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb) | ||
90 | { | ||
91 | MAILBOX_t *mb; | ||
92 | |||
93 | mb = &pmb->mb; | ||
94 | memset(pmb, 0, sizeof (LPFC_MBOXQ_t)); | ||
95 | mb->mbxCommand = MBX_HEARTBEAT; | ||
96 | mb->mbxOwner = OWN_HOST; | ||
97 | return; | ||
98 | } | ||
99 | |||
100 | /**********************************************/ | ||
85 | /* lpfc_read_la Issue a READ LA */ | 101 | /* lpfc_read_la Issue a READ LA */ |
86 | /* mailbox command */ | 102 | /* mailbox command */ |
87 | /**********************************************/ | 103 | /**********************************************/ |
@@ -676,7 +692,7 @@ lpfc_config_port(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) | |||
676 | if (phba->sli_rev == 3 && phba->vpd.sli3Feat.cerbm) { | 692 | if (phba->sli_rev == 3 && phba->vpd.sli3Feat.cerbm) { |
677 | mb->un.varCfgPort.cerbm = 1; /* Request HBQs */ | 693 | mb->un.varCfgPort.cerbm = 1; /* Request HBQs */ |
678 | mb->un.varCfgPort.max_hbq = 1; /* Requesting 2 HBQs */ | 694 | mb->un.varCfgPort.max_hbq = 1; /* Requesting 2 HBQs */ |
679 | if (phba->max_vpi && lpfc_npiv_enable && | 695 | if (phba->max_vpi && phba->cfg_npiv_enable && |
680 | phba->vpd.sli3Feat.cmv) { | 696 | phba->vpd.sli3Feat.cmv) { |
681 | mb->un.varCfgPort.max_vpi = phba->max_vpi; | 697 | mb->un.varCfgPort.max_vpi = phba->max_vpi; |
682 | mb->un.varCfgPort.cmv = 1; | 698 | mb->un.varCfgPort.cmv = 1; |