Commit 0eaaca4c authored by Quinn Tran's avatar Quinn Tran Committed by Martin K. Petersen

scsi: qla2xxx: Save frame payload size from ICB

Save frame payload size from init control block.  This field/data is used
to register with switch database.  This allows the init control block temp
buf to be reused.

[mkp: remove unused variable]
Signed-off-by: default avatarQuinn Tran <quinn.tran@cavium.com>
Signed-off-by: default avatarHimanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 15b6c3c9
...@@ -3848,6 +3848,7 @@ struct qla_hw_data { ...@@ -3848,6 +3848,7 @@ struct qla_hw_data {
atomic_t num_pend_mbx_stage1; atomic_t num_pend_mbx_stage1;
atomic_t num_pend_mbx_stage2; atomic_t num_pend_mbx_stage2;
atomic_t num_pend_mbx_stage3; atomic_t num_pend_mbx_stage3;
uint16_t frame_payload_size;
uint32_t login_retry_count; uint32_t login_retry_count;
/* SNS command interfaces. */ /* SNS command interfaces. */
......
...@@ -1954,7 +1954,6 @@ qla2x00_fdmiv2_rhba(scsi_qla_host_t *vha) ...@@ -1954,7 +1954,6 @@ qla2x00_fdmiv2_rhba(scsi_qla_host_t *vha)
void *entries; void *entries;
struct ct_fdmiv2_hba_attr *eiter; struct ct_fdmiv2_hba_attr *eiter;
struct qla_hw_data *ha = vha->hw; struct qla_hw_data *ha = vha->hw;
struct init_cb_24xx *icb24 = (struct init_cb_24xx *)ha->init_cb;
struct new_utsname *p_sysid = NULL; struct new_utsname *p_sysid = NULL;
/* Issue RHBA */ /* Issue RHBA */
...@@ -2134,9 +2133,7 @@ qla2x00_fdmiv2_rhba(scsi_qla_host_t *vha) ...@@ -2134,9 +2133,7 @@ qla2x00_fdmiv2_rhba(scsi_qla_host_t *vha)
/* MAX CT Payload Length */ /* MAX CT Payload Length */
eiter = entries + size; eiter = entries + size;
eiter->type = cpu_to_be16(FDMI_HBA_MAXIMUM_CT_PAYLOAD_LENGTH); eiter->type = cpu_to_be16(FDMI_HBA_MAXIMUM_CT_PAYLOAD_LENGTH);
eiter->a.max_ct_len = IS_FWI2_CAPABLE(ha) ? eiter->a.max_ct_len = cpu_to_be32(ha->frame_payload_size);
le16_to_cpu(icb24->frame_payload_size) :
le16_to_cpu(ha->init_cb->frame_payload_size);
eiter->a.max_ct_len = cpu_to_be32(eiter->a.max_ct_len); eiter->a.max_ct_len = cpu_to_be32(eiter->a.max_ct_len);
eiter->len = cpu_to_be16(4 + 4); eiter->len = cpu_to_be16(4 + 4);
size += 4 + 4; size += 4 + 4;
......
...@@ -4418,7 +4418,7 @@ qla2x00_nvram_config(scsi_qla_host_t *vha) ...@@ -4418,7 +4418,7 @@ qla2x00_nvram_config(scsi_qla_host_t *vha)
cnt = (uint8_t *)icb->reserved_3 - (uint8_t *)icb->add_firmware_options; cnt = (uint8_t *)icb->reserved_3 - (uint8_t *)icb->add_firmware_options;
while (cnt--) while (cnt--)
*dptr1++ = *dptr2++; *dptr1++ = *dptr2++;
ha->frame_payload_size = le16_to_cpu(icb->frame_payload_size);
/* Use alternate WWN? */ /* Use alternate WWN? */
if (nv->host_p[1] & BIT_7) { if (nv->host_p[1] & BIT_7) {
memcpy(icb->node_name, nv->alternate_node_name, WWN_SIZE); memcpy(icb->node_name, nv->alternate_node_name, WWN_SIZE);
...@@ -6893,7 +6893,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha) ...@@ -6893,7 +6893,7 @@ qla24xx_nvram_config(scsi_qla_host_t *vha)
(uint8_t *)&icb->interrupt_delay_timer; (uint8_t *)&icb->interrupt_delay_timer;
while (cnt--) while (cnt--)
*dptr1++ = *dptr2++; *dptr1++ = *dptr2++;
ha->frame_payload_size = le16_to_cpu(icb->frame_payload_size);
/* /*
* Setup driver NVRAM options. * Setup driver NVRAM options.
*/ */
...@@ -7949,7 +7949,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha) ...@@ -7949,7 +7949,7 @@ qla81xx_nvram_config(scsi_qla_host_t *vha)
/* Use extended-initialization control block. */ /* Use extended-initialization control block. */
memcpy(ha->ex_init_cb, &nv->ex_version, sizeof(*ha->ex_init_cb)); memcpy(ha->ex_init_cb, &nv->ex_version, sizeof(*ha->ex_init_cb));
ha->frame_payload_size = le16_to_cpu(icb->frame_payload_size);
/* /*
* Setup driver NVRAM options. * Setup driver NVRAM options.
*/ */
......
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