diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 622d8c338ef1..17a7a193fe3a 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -3662,18 +3662,16 @@ static void ol_txrx_peer_detach(void *ppeer, uint32_t bitmap) */ qdf_atomic_set(&peer->delete_in_progress, 1); - if (bitmap & CDP_PEER_DO_NOT_START_UNMAP_TIMER) { + if (!(bitmap & (1 << CDP_PEER_DO_NOT_START_UNMAP_TIMER))) { if (vdev->opmode == wlan_op_mode_sta) { qdf_mem_copy(&peer->vdev->last_peer_mac_addr, &peer->mac_addr, sizeof(union ol_txrx_align_mac_addr_t)); - } - /* - * Create a timer to track unmap events when the sta peer gets - * deleted. - */ - if (vdev->opmode == wlan_op_mode_sta) { + /* + * Create a timer to track unmap events when the + * sta peer gets deleted. + */ qdf_timer_start(&peer->peer_unmap_timer, OL_TXRX_PEER_UNMAP_TIMEOUT); ol_txrx_info_high @@ -3693,7 +3691,7 @@ static void ol_txrx_peer_detach(void *ppeer, uint32_t bitmap) /** * ol_txrx_peer_detach_force_delete() - Detach and delete a peer's data object - * @peer - the object to detach + * @ppeer - the object to detach * * Detach a peer and force peer object to be removed. It is called during * roaming scenario when the firmware has already deleted a peer. @@ -3712,7 +3710,7 @@ static void ol_txrx_peer_detach_force_delete(void *ppeer) /* Clear the peer_id_to_obj map entries */ ol_txrx_peer_remove_obj_map_entries(pdev, peer); - ol_txrx_peer_detach(peer, CDP_PEER_DELETE_NO_SPECIAL); + ol_txrx_peer_detach(peer, 1 << CDP_PEER_DELETE_NO_SPECIAL); } /** diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index 7a5c7db48df0..3568d0c30e0f 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1281,7 +1281,7 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, 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; + uint32_t bitmap = 1 << 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", @@ -1327,7 +1327,8 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, 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; + /* Clear default bit and set to NOT_START_UNMAP */ + bitmap = 1 << CDP_PEER_DO_NOT_START_UNMAP_TIMER; } peer_detach: @@ -1450,7 +1451,8 @@ 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_DO_NOT_START_UNMAP_TIMER); + cdp_peer_delete(soc, peer, + 1 << CDP_PEER_DO_NOT_START_UNMAP_TIMER); goto err; } @@ -5109,7 +5111,7 @@ void wma_delete_bss_ho_fail(tp_wma_handle wma, tpDeleteBssParams params) } if (peer) - cdp_peer_delete(soc, peer, CDP_PEER_DELETE_NO_SPECIAL); + cdp_peer_delete(soc, peer, 1 << 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,