qcacld-3.0: Remove BSSID from BLM reject ap list in disconnect

Remove the BSSID entry from the blacklist manager reject ap list
when the bad bssid counter gets over.

Change-Id: I833d161d97afd5c13a23ae48b1aded38d55b25e4
CRs-Fixed: 2468236
This commit is contained in:
gaurank kathpalia
2019-06-10 17:44:59 +05:30
committed by nshrivas
parent e09026aff6
commit af342f3cd2

View File

@@ -962,6 +962,7 @@ blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
struct blm_reject_ap *blm_entry = NULL; struct blm_reject_ap *blm_entry = NULL;
qdf_time_t connection_age = 0; qdf_time_t connection_age = 0;
bool entry_found = false; bool entry_found = false;
qdf_time_t max_entry_time;
blm_ctx = blm_get_pdev_obj(pdev); blm_ctx = blm_get_pdev_obj(pdev);
blm_psoc_obj = blm_get_psoc_obj(wlan_pdev_get_psoc(pdev)); blm_psoc_obj = blm_get_psoc_obj(wlan_pdev_get_psoc(pdev));
@@ -1006,11 +1007,24 @@ blm_update_bssid_connect_params(struct wlan_objmgr_pdev *pdev,
blm_entry->connect_timestamp = qdf_mc_timer_get_system_time(); blm_entry->connect_timestamp = qdf_mc_timer_get_system_time();
break; break;
case BLM_AP_DISCONNECTED: case BLM_AP_DISCONNECTED:
/* Update the blm info first */
blm_update_ap_info(blm_entry, &blm_psoc_obj->blm_cfg, NULL);
max_entry_time = blm_entry->connect_timestamp;
if (blm_entry->driver_blacklist) {
max_entry_time =
blm_entry->ap_timestamp.driver_blacklist_timestamp;
} else if (blm_entry->driver_avoidlist) {
max_entry_time =
QDF_MAX(blm_entry->ap_timestamp.driver_avoid_timestamp,
blm_entry->connect_timestamp);
}
connection_age = qdf_mc_timer_get_system_time() - connection_age = qdf_mc_timer_get_system_time() -
blm_entry->connect_timestamp; max_entry_time;
if (connection_age > if ((connection_age >
blm_psoc_obj->blm_cfg.bad_bssid_counter_reset_time) { blm_psoc_obj->blm_cfg.bad_bssid_counter_reset_time) ||
blm_debug("Bad Bssid timer expired, removed %pM from list", !blm_entry->reject_ap_type) {
blm_debug("Bad Bssid timer expired/AP cleared from all blacklisting, removed %pM from list",
blm_entry->bssid.bytes); blm_entry->bssid.bytes);
qdf_list_remove_node(&blm_ctx->reject_ap_list, qdf_list_remove_node(&blm_ctx->reject_ap_list,
&blm_entry->node); &blm_entry->node);