SLSI_MUTEX_LOCK(ndev_vif->scan_mutex);
for (i = 0; i < SLSI_SCAN_MAX; i++) {
- if (ndev_vif->scan[i].scan_req && !sdev->mlme_blocked &&
- SLSI_IS_VIF_INDEX_P2P_GROUP(sdev, ndev_vif))
+ if ((ndev_vif->scan[i].scan_req || ndev_vif->scan[i].acs_request) &&
+ !sdev->mlme_blocked)
slsi_mlme_del_scan(sdev, dev, (ndev_vif->ifnum << 8 | i), false);
slsi_purge_scan_results(ndev_vif, i);
if (ndev_vif->scan[i].scan_req && i == SLSI_SCAN_HW_ID)
#endif
ndev_vif->scan[i].scan_req = NULL;
+ kfree(ndev_vif->scan[i].acs_request);
+ ndev_vif->scan[i].acs_request = NULL;
ndev_vif->scan[i].sched_req = NULL;
}
SLSI_MUTEX_UNLOCK(ndev_vif->scan_mutex);
SLSI_NET_DBG1(dev, SLSI_MLME, "Connect/Roaming scan indication received, bssid:%pM\n", fapi_get_mgmt(skb)->bssid);
slsi_kfree_skb(ndev_vif->sta.mlme_scan_ind_skb);
ndev_vif->sta.mlme_scan_ind_skb = skb;
- } else {
+ } else if (ndev_vif->scan[scan_id].scan_req || ndev_vif->scan[scan_id].acs_request) {
slsi_roam_channel_cache_add(sdev, dev, skb);
if (SLSI_IS_VIF_INDEX_WLAN(ndev_vif))
slsi_add_to_scan_list(sdev, ndev_vif, skb, scan_ssid, scan_id);