mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
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: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <james.smart@broadcom.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
40630f4628
commit
e0165f2044
2 changed files with 12 additions and 0 deletions
|
@ -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,
|
||||||
} 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 {
|
||||||
* 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 */
|
||||||
|
|
Loading…
Add table
Reference in a new issue