qcacmn: Fix assert for deauth sent on inactive link
Set WMI_MLO_MGMT_TID for mlo link agnostic mgmt frames Change-Id: I385c1e9b50bc9ef6fe5f8875e0408bb2afca8945 CRs-Fixed: 3269920
This commit is contained in:

committed by
Madan Koyyalamudi

parent
3ec79c4856
commit
fa9ac21bbd
@@ -1564,6 +1564,7 @@ struct tx_send_params {
|
||||
* @tx_flags: additional configuration flags for mgmt frames
|
||||
* use 6 Mbps rather than 1 Mbps min rate(for 5GHz band or P2P)
|
||||
* @peer_rssi: peer RSSI value
|
||||
* @mlo_link_agnostic: if true, can send on any active link
|
||||
*/
|
||||
struct wmi_mgmt_params {
|
||||
void *tx_frame;
|
||||
@@ -1580,6 +1581,7 @@ struct wmi_mgmt_params {
|
||||
uint8_t use_6mbps;
|
||||
uint32_t tx_flags;
|
||||
int8_t peer_rssi;
|
||||
uint8_t mlo_link_agnostic;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -4409,6 +4409,7 @@ static QDF_STATUS send_mgmt_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
void *qdf_ctx = param->qdf_ctx;
|
||||
uint8_t *bufp;
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
wmi_mlo_tx_send_params *mlo_params;
|
||||
int32_t bufp_len = (param->frm_len < mgmt_tx_dl_frm_len) ? param->frm_len :
|
||||
mgmt_tx_dl_frm_len;
|
||||
|
||||
@@ -4416,7 +4417,8 @@ static QDF_STATUS send_mgmt_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
WMI_TLV_HDR_SIZE +
|
||||
roundup(bufp_len, sizeof(uint32_t));
|
||||
|
||||
buf = wmi_buf_alloc(wmi_handle, sizeof(wmi_tx_send_params) + cmd_len);
|
||||
buf = wmi_buf_alloc(wmi_handle, sizeof(wmi_tx_send_params) + cmd_len +
|
||||
WMI_TLV_HDR_SIZE + sizeof(wmi_mlo_tx_send_params));
|
||||
if (!buf)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
@@ -4471,7 +4473,28 @@ static QDF_STATUS send_mgmt_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
wmi_err("Populate TX send params failed");
|
||||
goto unmap_tx_frame;
|
||||
}
|
||||
} else {
|
||||
WMITLV_SET_HDR(&((wmi_tx_send_params *)bufp)->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_tx_send_params,
|
||||
WMITLV_GET_STRUCT_TLVLEN(wmi_tx_send_params));
|
||||
}
|
||||
|
||||
/* Even tx_params_valid is false, still need reserve space to pass wmi
|
||||
* tag check */
|
||||
cmd_len += sizeof(wmi_tx_send_params);
|
||||
bufp += sizeof(wmi_tx_send_params);
|
||||
/* wmi_mlo_tx_send_params */
|
||||
if (param->mlo_link_agnostic) {
|
||||
wmi_debug("Set mlo mgmt tid");
|
||||
WMITLV_SET_HDR(bufp, WMITLV_TAG_ARRAY_STRUC,
|
||||
sizeof(wmi_mlo_tx_send_params));
|
||||
bufp += WMI_TLV_HDR_SIZE;
|
||||
mlo_params = (wmi_mlo_tx_send_params *)bufp;
|
||||
WMITLV_SET_HDR(&mlo_params->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_mlo_tx_send_params,
|
||||
WMITLV_GET_STRUCT_TLVLEN(wmi_mlo_tx_send_params));
|
||||
mlo_params->hw_link_id = WMI_MLO_MGMT_TID;
|
||||
cmd_len += WMI_TLV_HDR_SIZE + sizeof(wmi_mlo_tx_send_params);
|
||||
}
|
||||
|
||||
wmi_mtrace(WMI_MGMT_TX_SEND_CMDID, cmd->vdev_id, 0);
|
||||
|
Reference in New Issue
Block a user