Commit e0165f20 authored by James Smart's avatar James Smart Committed by Martin K. Petersen

scsi: lpfc: Clear the VendorVersion in the PLOGI/PLOGI ACC payload

Clear the VendorVersion in the PLOGI/PLOGI ACC payload

Vendor version info may have been set on fabric login. Before sending
PLOGI payloads, ensure that it's cleared.
Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 40630f46
...@@ -1999,6 +1999,9 @@ lpfc_issue_els_plogi(struct lpfc_vport *vport, uint32_t did, uint8_t retry) ...@@ -1999,6 +1999,9 @@ lpfc_issue_els_plogi(struct lpfc_vport *vport, uint32_t did, uint8_t retry)
if (sp->cmn.fcphHigh < FC_PH3) if (sp->cmn.fcphHigh < FC_PH3)
sp->cmn.fcphHigh = FC_PH3; sp->cmn.fcphHigh = FC_PH3;
sp->cmn.valid_vendor_ver_level = 0;
memset(sp->vendorVersion, 0, sizeof(sp->vendorVersion));
lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD, lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_CMD,
"Issue PLOGI: did:x%x", "Issue PLOGI: did:x%x",
did, 0, 0); did, 0, 0);
...@@ -3988,6 +3991,9 @@ lpfc_els_rsp_acc(struct lpfc_vport *vport, uint32_t flag, ...@@ -3988,6 +3991,9 @@ lpfc_els_rsp_acc(struct lpfc_vport *vport, uint32_t flag,
} else { } else {
memcpy(pcmd, &vport->fc_sparam, memcpy(pcmd, &vport->fc_sparam,
sizeof(struct serv_parm)); sizeof(struct serv_parm));
sp->cmn.valid_vendor_ver_level = 0;
memset(sp->vendorVersion, 0, sizeof(sp->vendorVersion));
} }
lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_RSP, lpfc_debugfs_disc_trc(vport, LPFC_DISC_TRC_ELS_RSP,
......
...@@ -360,6 +360,12 @@ struct csp { ...@@ -360,6 +360,12 @@ struct csp {
* Word 1 Bit 30 in PLOGI request is random offset * Word 1 Bit 30 in PLOGI request is random offset
*/ */
#define virtual_fabric_support randomOffset /* Word 1, bit 30 */ #define virtual_fabric_support randomOffset /* Word 1, bit 30 */
/*
* Word 1 Bit 29 in common service parameter is overloaded.
* Word 1 Bit 29 in FLOGI response is multiple NPort assignment
* Word 1 Bit 29 in FLOGI/PLOGI request is Valid Vendor Version Level
*/
#define valid_vendor_ver_level response_multiple_NPort /* Word 1, bit 29 */
#ifdef __BIG_ENDIAN_BITFIELD #ifdef __BIG_ENDIAN_BITFIELD
uint16_t request_multiple_Nport:1; /* FC Word 1, bit 31 */ uint16_t request_multiple_Nport:1; /* FC Word 1, bit 31 */
uint16_t randomOffset:1; /* FC Word 1, bit 30 */ uint16_t randomOffset:1; /* FC Word 1, bit 30 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment