diff options
| author | Krunal Soni <ksoni@codeaurora.org> | 2017-10-20 20:20:19 -0700 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-10-25 02:05:14 -0700 |
| commit | e1b0a396c0a319a5a2191d8d4461baa4337d33d3 (patch) | |
| tree | 65e22845e4845c5413642d349143571d5804cc29 | |
| parent | c292ecc3f82dd54922292379ed3f297b3551995a (diff) | |
qcacmn: Fix to propagate key-receiver-sequence-counter to WMI
SME module propagates KeyRSC to MAC/PE module but MAC/PE doesn't
pass this counter to WMA and due to which WMA is not able pass to
WMI module.
Add a fix to propagate KeyRSC field from MAC to WMA module and
WMA to WMI module.
CRs-Fixed: 2130765
Change-Id: I0de6907bf8aa159eccb1d8310e7027f8fdf19fff
| -rw-r--r-- | wmi/inc/wmi_unified_param.h | 7 | ||||
| -rw-r--r-- | wmi/src/wmi_unified_tlv.c | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/wmi/inc/wmi_unified_param.h b/wmi/inc/wmi_unified_param.h index 6c28645a6420..1106bd1f01fb 100644 --- a/wmi/inc/wmi_unified_param.h +++ b/wmi/inc/wmi_unified_param.h @@ -1640,6 +1640,11 @@ struct wmi_probe_resp_params { uint32_t ucProxyProbeReqValidIEBmap[8]; }; +struct key_seq_counter { + uint32_t key_seq_counter_l; + uint32_t key_seq_counter_h; +}; + /* struct set_key_params: structure containing * installation key parameters * @vdev_id: vdev id @@ -1652,6 +1657,7 @@ struct wmi_probe_resp_params { * @key_rxmic_len: rx mic length * @rx_iv: receive IV, applicable only in case of WAPI * @tx_iv: transmit IV, applicable only in case of WAPI + * @key_rsc_counter: RSC key counter * @key_data: key data */ struct set_key_params { @@ -1668,6 +1674,7 @@ struct set_key_params { uint8_t tx_iv[16]; #endif uint8_t key_data[WMI_MAC_MAX_KEY_LENGTH]; + struct key_seq_counter key_rsc_counter; }; /** diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c index 14ae445af614..18fabb7fe571 100644 --- a/wmi/src/wmi_unified_tlv.c +++ b/wmi/src/wmi_unified_tlv.c @@ -3922,6 +3922,8 @@ QDF_STATUS send_setup_install_key_cmd_tlv(wmi_unified_t wmi_handle, key_data = (A_UINT8 *) (buf_ptr + WMI_TLV_HDR_SIZE); qdf_mem_copy((void *)key_data, (const void *)key_params->key_data, key_params->key_len); + qdf_mem_copy(&cmd->key_rsc_counter, &key_params->key_rsc_counter, + sizeof(wmi_key_seq_counter)); cmd->key_len = key_params->key_len; status = wmi_unified_cmd_send(wmi_handle, buf, len, |
