diff options
author | James Smart <James.Smart@Emulex.Com> | 2009-11-18 15:39:16 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 13:01:50 -0500 |
commit | c868595d5686e97183bc1ad85502835d81d7a457 (patch) | |
tree | c6e1838b96f048147e7b9954a195aee6bfe5b0c0 /drivers/scsi/lpfc/lpfc_mbox.c | |
parent | 832151f45806613f203c4c0308c1566d882b971f (diff) |
[SCSI] lpfc 8.3.6 : FCoE Protocol Fixes
FCoE Protocol fixes.
- Fixed FIP frame designation for ELS commands.
- Fix CVL received on Port 1 not processed by driver.
- Fix Zeroed frame on wire after FLOGI
- Fix vport keep-alive does not contain the correct WWN.
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_mbox.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_mbox.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c index 51c9a1f576f6..a9afd8b94b6a 100644 --- a/drivers/scsi/lpfc/lpfc_mbox.c +++ b/drivers/scsi/lpfc/lpfc_mbox.c | |||
@@ -820,6 +820,10 @@ lpfc_reg_vpi(struct lpfc_vport *vport, LPFC_MBOXQ_t *pmb) | |||
820 | mb->un.varRegVpi.vpi = vport->vpi + vport->phba->vpi_base; | 820 | mb->un.varRegVpi.vpi = vport->vpi + vport->phba->vpi_base; |
821 | mb->un.varRegVpi.sid = vport->fc_myDID; | 821 | mb->un.varRegVpi.sid = vport->fc_myDID; |
822 | mb->un.varRegVpi.vfi = vport->vfi + vport->phba->vfi_base; | 822 | mb->un.varRegVpi.vfi = vport->vfi + vport->phba->vfi_base; |
823 | memcpy(mb->un.varRegVpi.wwn, &vport->fc_portname, | ||
824 | sizeof(struct lpfc_name)); | ||
825 | mb->un.varRegVpi.wwn[0] = cpu_to_le32(mb->un.varRegVpi.wwn[0]); | ||
826 | mb->un.varRegVpi.wwn[1] = cpu_to_le32(mb->un.varRegVpi.wwn[1]); | ||
823 | 827 | ||
824 | mb->mbxCommand = MBX_REG_VPI; | 828 | mb->mbxCommand = MBX_REG_VPI; |
825 | mb->mbxOwner = OWN_HOST; | 829 | mb->mbxOwner = OWN_HOST; |
@@ -1818,6 +1822,9 @@ lpfc_reg_vfi(struct lpfcMboxq *mbox, struct lpfc_vport *vport, dma_addr_t phys) | |||
1818 | bf_set(lpfc_reg_vfi_vfi, reg_vfi, vport->vfi + vport->phba->vfi_base); | 1822 | bf_set(lpfc_reg_vfi_vfi, reg_vfi, vport->vfi + vport->phba->vfi_base); |
1819 | bf_set(lpfc_reg_vfi_fcfi, reg_vfi, vport->phba->fcf.fcfi); | 1823 | bf_set(lpfc_reg_vfi_fcfi, reg_vfi, vport->phba->fcf.fcfi); |
1820 | bf_set(lpfc_reg_vfi_vpi, reg_vfi, vport->vpi + vport->phba->vpi_base); | 1824 | bf_set(lpfc_reg_vfi_vpi, reg_vfi, vport->vpi + vport->phba->vpi_base); |
1825 | memcpy(reg_vfi->wwn, &vport->fc_portname, sizeof(struct lpfc_name)); | ||
1826 | reg_vfi->wwn[0] = cpu_to_le32(reg_vfi->wwn[0]); | ||
1827 | reg_vfi->wwn[1] = cpu_to_le32(reg_vfi->wwn[1]); | ||
1821 | reg_vfi->bde.addrHigh = putPaddrHigh(phys); | 1828 | reg_vfi->bde.addrHigh = putPaddrHigh(phys); |
1822 | reg_vfi->bde.addrLow = putPaddrLow(phys); | 1829 | reg_vfi->bde.addrLow = putPaddrLow(phys); |
1823 | reg_vfi->bde.tus.f.bdeSize = sizeof(vport->fc_sparam); | 1830 | reg_vfi->bde.tus.f.bdeSize = sizeof(vport->fc_sparam); |