|
@@ -1244,6 +1244,8 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid,
|
|
|
struct peer_flush_params param = {0};
|
|
|
uint8_t *peer_mac_addr;
|
|
|
void *soc = cds_get_context(QDF_MODULE_ID_SOC);
|
|
|
+ QDF_STATUS qdf_status;
|
|
|
+ uint32_t bitmap = CDP_PEER_DELETE_NO_SPECIAL;
|
|
|
|
|
|
if (!wma->interfaces[vdev_id].peer_count) {
|
|
|
WMA_LOGE("%s: Can't remove peer with peer_addr %pM vdevid %d peer_count %d",
|
|
@@ -1284,8 +1286,13 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid,
|
|
|
wlan_roam_debug_log(vdev_id, DEBUG_PEER_DELETE_SEND,
|
|
|
DEBUG_INVALID_PEER_ID, peer_addr, peer,
|
|
|
0, 0);
|
|
|
- wmi_unified_peer_delete_send(wma->wmi_handle, peer_addr,
|
|
|
- vdev_id);
|
|
|
+ qdf_status = wmi_unified_peer_delete_send(wma->wmi_handle, peer_addr,
|
|
|
+ vdev_id);
|
|
|
+ if (QDF_IS_STATUS_ERROR(qdf_status)) {
|
|
|
+ WMA_LOGE("%s Peer delete could not be sent to firmware %d",
|
|
|
+ __func__, qdf_status);
|
|
|
+ bitmap = CDP_PEER_DO_NOT_START_UNMAP_TIMER;
|
|
|
+ }
|
|
|
|
|
|
peer_detach:
|
|
|
WMA_LOGE("%s: Remove peer %pK with peer_addr %pM vdevid %d peer_count %d",
|
|
@@ -1296,7 +1303,7 @@ peer_detach:
|
|
|
if (roam_synch_in_progress)
|
|
|
cdp_peer_detach_force_delete(soc, peer);
|
|
|
else
|
|
|
- cdp_peer_delete(soc, peer);
|
|
|
+ cdp_peer_delete(soc, peer, bitmap);
|
|
|
}
|
|
|
|
|
|
wma->interfaces[vdev_id].peer_count--;
|
|
@@ -1407,7 +1414,7 @@ QDF_STATUS wma_create_peer(tp_wma_handle wma, struct cdp_pdev *pdev,
|
|
|
if (wmi_unified_peer_create_send(wma->wmi_handle,
|
|
|
¶m) != QDF_STATUS_SUCCESS) {
|
|
|
WMA_LOGE("%s : Unable to create peer in Target", __func__);
|
|
|
- cdp_peer_delete(soc, peer);
|
|
|
+ cdp_peer_delete(soc, peer, CDP_PEER_DO_NOT_START_UNMAP_TIMER);
|
|
|
goto err;
|
|
|
}
|
|
|
|
|
@@ -5016,7 +5023,7 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params)
|
|
|
}
|
|
|
|
|
|
if (peer)
|
|
|
- cdp_peer_delete(soc, peer);
|
|
|
+ cdp_peer_delete(soc, peer, CDP_PEER_DELETE_NO_SPECIAL);
|
|
|
iface->peer_count--;
|
|
|
WMA_LOGI("%s: Removed peer %pK with peer_addr %pM vdevid %d peer_count %d",
|
|
|
__func__, peer, params->bssid, params->smesessionId,
|