Commit 33c3e710 authored by Martin K. Petersen's avatar Martin K. Petersen

Merge patch series "lpfc: Update lpfc to revision 14.2.0.17"

Justin Tee <justintee8345@gmail.com> says:

Update lpfc to revision 14.2.0.17

This patch set contains bug fixes for the VMID feature.

The patches were cut against Martin's 6.8/scsi-queue tree.

Link: https://lore.kernel.org/r/20231207224039.35466-1-justintee8345@gmail.comSigned-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parents a6478b26 819952d5
...@@ -5954,7 +5954,7 @@ LPFC_ATTR_R(enable_mi, 1, 0, 1, "Enable MI"); ...@@ -5954,7 +5954,7 @@ LPFC_ATTR_R(enable_mi, 1, 0, 1, "Enable MI");
* 4 - 255 = vmid support enabled for 4-255 VMs * 4 - 255 = vmid support enabled for 4-255 VMs
* Value range is [4,255]. * Value range is [4,255].
*/ */
LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID, LPFC_ATTR_R(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID,
"Maximum number of VMs supported"); "Maximum number of VMs supported");
/* /*
...@@ -5962,7 +5962,7 @@ LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID, ...@@ -5962,7 +5962,7 @@ LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID,
* 0 = Timeout is disabled * 0 = Timeout is disabled
* Value range is [0,24]. * Value range is [0,24].
*/ */
LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24, LPFC_ATTR_R(vmid_inactivity_timeout, 4, 0, 24,
"Inactivity timeout in hours"); "Inactivity timeout in hours");
/* /*
...@@ -5971,7 +5971,7 @@ LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24, ...@@ -5971,7 +5971,7 @@ LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24,
* 1 = Support is enabled * 1 = Support is enabled
* Value range is [0,1]. * Value range is [0,1].
*/ */
LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE, LPFC_ATTR_R(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE,
LPFC_VMID_APP_HEADER_DISABLE, LPFC_VMID_APP_HEADER_ENABLE, LPFC_VMID_APP_HEADER_DISABLE, LPFC_VMID_APP_HEADER_ENABLE,
"Enable App Header VMID support"); "Enable App Header VMID support");
...@@ -5982,7 +5982,7 @@ LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE, ...@@ -5982,7 +5982,7 @@ LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE,
* 2 = Allow all targets * 2 = Allow all targets
* Value range is [0,2]. * Value range is [0,2].
*/ */
LPFC_ATTR_RW(vmid_priority_tagging, LPFC_VMID_PRIO_TAG_DISABLE, LPFC_ATTR_R(vmid_priority_tagging, LPFC_VMID_PRIO_TAG_DISABLE,
LPFC_VMID_PRIO_TAG_DISABLE, LPFC_VMID_PRIO_TAG_DISABLE,
LPFC_VMID_PRIO_TAG_ALL_TARGETS, LPFC_VMID_PRIO_TAG_ALL_TARGETS,
"Enable Priority Tagging VMID support"); "Enable Priority Tagging VMID support");
......
...@@ -1130,12 +1130,12 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, ...@@ -1130,12 +1130,12 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb,
vport->port_state, vport->fc_flag, vport->port_state, vport->fc_flag,
sp->cmn.priority_tagging, kref_read(&ndlp->kref)); sp->cmn.priority_tagging, kref_read(&ndlp->kref));
if (sp->cmn.priority_tagging)
vport->phba->pport->vmid_flag |= (LPFC_VMID_ISSUE_QFPA |
LPFC_VMID_TYPE_PRIO);
/* reinitialize the VMID datastructure before returning */ /* reinitialize the VMID datastructure before returning */
if (lpfc_is_vmid_enabled(phba)) if (lpfc_is_vmid_enabled(phba))
lpfc_reinit_vmid(vport); lpfc_reinit_vmid(vport);
if (sp->cmn.priority_tagging)
vport->phba->pport->vmid_flag |= (LPFC_VMID_ISSUE_QFPA |
LPFC_VMID_TYPE_PRIO);
/* /*
* Address a timing race with dev_loss. If dev_loss is active on * Address a timing race with dev_loss. If dev_loss is active on
...@@ -11143,6 +11143,14 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) ...@@ -11143,6 +11143,14 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
lpfc_nlp_put(ndlp); lpfc_nlp_put(ndlp);
mempool_free(pmb, phba->mbox_mem_pool); mempool_free(pmb, phba->mbox_mem_pool);
/* reinitialize the VMID datastructure before returning.
* this is specifically for vport
*/
if (lpfc_is_vmid_enabled(phba))
lpfc_reinit_vmid(vport);
vport->vmid_flag = vport->phba->pport->vmid_flag;
return; return;
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
* included with this package. * * included with this package. *
*******************************************************************/ *******************************************************************/
#define LPFC_DRIVER_VERSION "14.2.0.16" #define LPFC_DRIVER_VERSION "14.2.0.17"
#define LPFC_DRIVER_NAME "lpfc" #define LPFC_DRIVER_NAME "lpfc"
/* Used for SLI 2/3 */ /* Used for SLI 2/3 */
......
...@@ -321,5 +321,6 @@ lpfc_reinit_vmid(struct lpfc_vport *vport) ...@@ -321,5 +321,6 @@ lpfc_reinit_vmid(struct lpfc_vport *vport)
if (!hash_empty(vport->hash_table)) if (!hash_empty(vport->hash_table))
hash_for_each_safe(vport->hash_table, bucket, tmp, cur, hnode) hash_for_each_safe(vport->hash_table, bucket, tmp, cur, hnode)
hash_del(&cur->hnode); hash_del(&cur->hnode);
vport->vmid_flag = 0;
write_unlock(&vport->vmid_lock); write_unlock(&vport->vmid_lock);
} }
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