mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 04:59:05 -04:00
qcacld-3.0: Update correct value of RoamKeyMgmtOffloadEnabled
Presently RoamKeyMgmtOffloadEnabled flag in roam req_buf gets set from csr session, which gets set only if user sends vendor command to set key management i.e. QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY. Thus if user doesn't send QCA_NL80211_VENDOR_SUBCMD_KEY_MGMT_SET_KEY vendor command, then host fails to sets ROAM_OFFLOAD_OKC_ENABLED & PMK_CACHE_ENABLED flags in RSO command. This leads to failure of single PMK cache roaming. Hence update correct value of RoamKeyMgmtOffloadEnabled from mlme object. Change-Id: I34099b4651ca179bb86ca24581526e161d2bf503 CRs-Fixed: 2802124
This commit is contained in:
parent
df65dc896e
commit
2af71e59bd
6 changed files with 8 additions and 18 deletions
|
|
@ -6193,7 +6193,7 @@ static int __wlan_hdd_cfg80211_keymgmt_set_key(struct wiphy *wiphy,
|
|||
mac_handle = hdd_ctx->mac_handle;
|
||||
sme_update_roam_key_mgmt_offload_enabled(mac_handle,
|
||||
hdd_adapter->vdev_id,
|
||||
true, &pmkid_modes);
|
||||
&pmkid_modes);
|
||||
qdf_mem_zero(&local_pmk, SIR_ROAM_SCAN_PSK_SIZE);
|
||||
qdf_mem_copy(local_pmk, data, data_len);
|
||||
sme_roam_set_psk_pmk(mac_handle, hdd_adapter->vdev_id,
|
||||
|
|
|
|||
|
|
@ -602,7 +602,6 @@ struct csr_roam_session {
|
|||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
uint8_t psk_pmk[SIR_ROAM_SCAN_PSK_SIZE];
|
||||
size_t pmk_len;
|
||||
uint8_t RoamKeyMgmtOffloadEnabled;
|
||||
struct roam_offload_synch_ind *roam_synch_data;
|
||||
struct pmkid_mode_bits pmkid_modes;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1708,10 +1708,10 @@ sme_reset_link_layer_stats_ind_cb(mac_handle_t mac_handle)
|
|||
QDF_STATUS sme_set_wisa_params(mac_handle_t mac_handle,
|
||||
struct sir_wisa_params *wisa_params);
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
QDF_STATUS sme_update_roam_key_mgmt_offload_enabled(mac_handle_t mac_handle,
|
||||
uint8_t session_id,
|
||||
bool key_mgmt_offload_enabled,
|
||||
struct pmkid_mode_bits *pmkid_modes);
|
||||
QDF_STATUS
|
||||
sme_update_roam_key_mgmt_offload_enabled(mac_handle_t mac_handle,
|
||||
uint8_t session_id,
|
||||
struct pmkid_mode_bits *pmkid_modes);
|
||||
#endif
|
||||
QDF_STATUS sme_get_link_status(mac_handle_t mac_handle,
|
||||
csr_link_status_callback callback,
|
||||
|
|
|
|||
|
|
@ -10780,7 +10780,6 @@ QDF_STATUS sme_beacon_debug_stats_req(
|
|||
* This is a synchronous call
|
||||
* @mac_handle: The handle returned by mac_open.
|
||||
* @session_id: Session Identifier
|
||||
* @key_mgmt_offload_enabled: key mgmt enable/disable flag
|
||||
* @pmkid_modes: PMKID modes of PMKSA caching and OKC
|
||||
* Return: QDF_STATUS_SUCCESS - SME updated config successfully.
|
||||
* Other status means SME is failed to update.
|
||||
|
|
@ -10788,7 +10787,6 @@ QDF_STATUS sme_beacon_debug_stats_req(
|
|||
|
||||
QDF_STATUS sme_update_roam_key_mgmt_offload_enabled(mac_handle_t mac_handle,
|
||||
uint8_t session_id,
|
||||
bool key_mgmt_offload_enabled,
|
||||
struct pmkid_mode_bits *pmkid_modes)
|
||||
{
|
||||
struct mac_context *mac_ctx = MAC_CONTEXT(mac_handle);
|
||||
|
|
@ -10797,12 +10795,8 @@ QDF_STATUS sme_update_roam_key_mgmt_offload_enabled(mac_handle_t mac_handle,
|
|||
status = sme_acquire_global_lock(&mac_ctx->sme);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
if (CSR_IS_SESSION_VALID(mac_ctx, session_id)) {
|
||||
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
|
||||
"%s: LFR3: key_mgmt_offload_enabled changed to %d",
|
||||
__func__, key_mgmt_offload_enabled);
|
||||
status = csr_roam_set_key_mgmt_offload(mac_ctx,
|
||||
session_id,
|
||||
key_mgmt_offload_enabled,
|
||||
pmkid_modes);
|
||||
} else
|
||||
status = QDF_STATUS_E_INVAL;
|
||||
|
|
|
|||
|
|
@ -16838,7 +16838,6 @@ QDF_STATUS csr_get_snr(struct mac_context *mac,
|
|||
* csr_roam_set_key_mgmt_offload() - enable/disable key mgmt offload
|
||||
* @mac_ctx: mac context.
|
||||
* @session_id: Session Identifier
|
||||
* @roam_key_mgmt_offload_enabled: key mgmt enable/disable flag
|
||||
* @pmkid_modes: PMKID modes of PMKSA caching and OKC
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS - CSR updated config successfully.
|
||||
|
|
@ -16847,7 +16846,6 @@ QDF_STATUS csr_get_snr(struct mac_context *mac,
|
|||
|
||||
QDF_STATUS csr_roam_set_key_mgmt_offload(struct mac_context *mac_ctx,
|
||||
uint32_t session_id,
|
||||
bool roam_key_mgmt_offload_enabled,
|
||||
struct pmkid_mode_bits *pmkid_modes)
|
||||
{
|
||||
struct csr_roam_session *session = CSR_GET_SESSION(mac_ctx, session_id);
|
||||
|
|
@ -16856,7 +16854,6 @@ QDF_STATUS csr_roam_set_key_mgmt_offload(struct mac_context *mac_ctx,
|
|||
sme_err("session %d not found", session_id);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
session->RoamKeyMgmtOffloadEnabled = roam_key_mgmt_offload_enabled;
|
||||
session->pmkid_modes.fw_okc = pmkid_modes->fw_okc;
|
||||
session->pmkid_modes.fw_pmksa_cache = pmkid_modes->fw_pmksa_cache;
|
||||
return QDF_STATUS_SUCCESS;
|
||||
|
|
@ -17012,7 +17009,8 @@ csr_update_roam_scan_offload_request(struct mac_context *mac_ctx,
|
|||
wlan_cm_get_roam_scan_scheme_bitmap(mac_ctx->psoc,
|
||||
session->vdev_id);
|
||||
|
||||
req_buf->RoamKeyMgmtOffloadEnabled = session->RoamKeyMgmtOffloadEnabled;
|
||||
req_buf->RoamKeyMgmtOffloadEnabled =
|
||||
mac_ctx->mlme_cfg->lfr.lfr3_roaming_offload;
|
||||
req_buf->pmkid_modes.fw_okc =
|
||||
(pmkid_modes & CFG_PMKID_MODES_OKC) ? 1 : 0;
|
||||
req_buf->pmkid_modes.fw_pmksa_cache =
|
||||
|
|
@ -20602,7 +20600,7 @@ static QDF_STATUS csr_cm_roam_scan_offload_fill_lfr3_config(
|
|||
|
||||
/* Update 11i TLV related Fields */
|
||||
rso_config->rso_11i_info.roam_key_mgmt_offload_enabled =
|
||||
session->RoamKeyMgmtOffloadEnabled;
|
||||
mac->mlme_cfg->lfr.lfr3_roaming_offload;
|
||||
rso_config->rso_11i_info.fw_okc =
|
||||
(pmkid_modes & CFG_PMKID_MODES_OKC) ? 1 : 0;
|
||||
rso_config->rso_11i_info.fw_pmksa_cache =
|
||||
|
|
|
|||
|
|
@ -734,7 +734,6 @@ QDF_STATUS csr_roam_set_psk_pmk(struct mac_context *mac, uint32_t sessionId,
|
|||
|
||||
QDF_STATUS csr_roam_set_key_mgmt_offload(struct mac_context *mac_ctx,
|
||||
uint32_t session_id,
|
||||
bool roam_key_mgmt_offload_enabled,
|
||||
struct pmkid_mode_bits *pmkid_modes);
|
||||
#endif
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue