|
@@ -371,7 +371,8 @@ QDF_STATUS wlan_crypto_set_pmksa(struct wlan_crypto_params *crypto_params,
|
|
|
return QDF_STATUS_E_INVAL;
|
|
|
}
|
|
|
crypto_params->pmksa[first_available_slot] = pmksa;
|
|
|
- crypto_debug("PMKSA: Added the PMKSA entry at index=%d", i);
|
|
|
+ crypto_debug("PMKSA: Added the PMKSA entry at index=%d",
|
|
|
+ first_available_slot);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -380,7 +381,7 @@ static
|
|
|
QDF_STATUS wlan_crypto_del_pmksa(struct wlan_crypto_params *crypto_params,
|
|
|
struct wlan_crypto_pmksa *pmksa)
|
|
|
{
|
|
|
- uint8_t i, j;
|
|
|
+ uint8_t i, j, valid_entries_in_table = 0;
|
|
|
bool match_found = false;
|
|
|
u8 del_pmk[MAX_PMK_LEN] = {0};
|
|
|
|
|
@@ -388,7 +389,12 @@ QDF_STATUS wlan_crypto_del_pmksa(struct wlan_crypto_params *crypto_params,
|
|
|
for (i = 0; i < WLAN_CRYPTO_MAX_PMKID; i++) {
|
|
|
if (!crypto_params->pmksa[i])
|
|
|
continue;
|
|
|
- if (qdf_is_macaddr_equal(&pmksa->bssid,
|
|
|
+
|
|
|
+ valid_entries_in_table++;
|
|
|
+
|
|
|
+ if (!pmksa->ssid_len &&
|
|
|
+ !qdf_is_macaddr_zero(&pmksa->bssid) &&
|
|
|
+ qdf_is_macaddr_equal(&pmksa->bssid,
|
|
|
&crypto_params->pmksa[i]->bssid)) {
|
|
|
match_found = true;
|
|
|
} else if (pmksa->ssid_len &&
|
|
@@ -436,7 +442,8 @@ QDF_STATUS wlan_crypto_del_pmksa(struct wlan_crypto_params *crypto_params,
|
|
|
}
|
|
|
|
|
|
if (i == WLAN_CRYPTO_MAX_PMKID && !match_found)
|
|
|
- crypto_debug("No such pmksa entry exists");
|
|
|
+ crypto_debug("No such pmksa entry exists: valid entries:%d",
|
|
|
+ valid_entries_in_table);
|
|
|
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
@@ -454,6 +461,8 @@ QDF_STATUS wlan_crypto_pmksa_flush(struct wlan_crypto_params *crypto_params)
|
|
|
crypto_params->pmksa[i] = NULL;
|
|
|
}
|
|
|
|
|
|
+ crypto_debug("Flushed the pmksa table");
|
|
|
+
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
@@ -608,16 +617,19 @@ wlan_crypto_get_peer_pmksa(struct wlan_objmgr_vdev *vdev,
|
|
|
for (i = 0; i < WLAN_CRYPTO_MAX_PMKID; i++) {
|
|
|
if (!crypto_params->pmksa[i])
|
|
|
continue;
|
|
|
- if (qdf_is_macaddr_equal(&pmksa->bssid,
|
|
|
- &crypto_params->pmksa[i]->bssid)) {
|
|
|
+
|
|
|
+ if (pmksa->ssid_len &&
|
|
|
+ !qdf_mem_cmp(pmksa->ssid,
|
|
|
+ crypto_params->pmksa[i]->ssid,
|
|
|
+ pmksa->ssid_len) &&
|
|
|
+ !qdf_mem_cmp(pmksa->cache_id,
|
|
|
+ crypto_params->pmksa[i]->cache_id,
|
|
|
+ WLAN_CACHE_ID_LEN)) {
|
|
|
return crypto_params->pmksa[i];
|
|
|
- } else if (pmksa->ssid_len &&
|
|
|
- !qdf_mem_cmp(pmksa->ssid,
|
|
|
- crypto_params->pmksa[i]->ssid,
|
|
|
- pmksa->ssid_len) &&
|
|
|
- !qdf_mem_cmp(pmksa->cache_id,
|
|
|
- crypto_params->pmksa[i]->cache_id,
|
|
|
- WLAN_CACHE_ID_LEN)){
|
|
|
+ } else if (!pmksa->ssid_len &&
|
|
|
+ !qdf_is_macaddr_zero(&pmksa->bssid) &&
|
|
|
+ qdf_is_macaddr_equal(&pmksa->bssid,
|
|
|
+ &crypto_params->pmksa[i]->bssid)) {
|
|
|
return crypto_params->pmksa[i];
|
|
|
}
|
|
|
}
|