diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 01eca72a17f1..9dd66d9348bf 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -1598,7 +1598,6 @@ static void ol_txrx_pdev_detach(struct cdp_pdev *ppdev, int force) htt_pdev_free(pdev->htt_pdev); ol_txrx_peer_find_detach(pdev); - qdf_flush_work(&pdev->peer_unmap_timer_work); ol_txrx_tso_stats_deinit(pdev); ol_txrx_fw_stats_desc_pool_deinit(pdev); @@ -3169,16 +3168,6 @@ static QDF_STATUS ol_txrx_clear_peer(struct cdp_pdev *ppdev, uint8_t sta_id) return status; } -void peer_unmap_timer_work_function(void *param) -{ - WMA_LOGI("Enter: %s", __func__); - /* Added for debugging only */ - ol_txrx_dump_peer_access_list(param); - ol_txrx_peer_release_ref(param, PEER_DEBUG_ID_OL_UNMAP_TIMER_WORK); - wlan_roam_debug_dump_table(); - cds_trigger_recovery(QDF_PEER_UNMAP_TIMEDOUT); -} - /** * peer_unmap_timer_handler() - peer unmap timer function * @data: peer object pointer @@ -3188,22 +3177,19 @@ void peer_unmap_timer_work_function(void *param) void peer_unmap_timer_handler(void *data) { ol_txrx_peer_handle peer = (ol_txrx_peer_handle)data; - ol_txrx_pdev_handle txrx_pdev = cds_get_context(QDF_MODULE_ID_TXRX); ol_txrx_err("all unmap events not received for peer %pK, ref_cnt %d", peer, qdf_atomic_read(&peer->ref_cnt)); ol_txrx_err("peer %pK ("QDF_MAC_ADDR_STR")", peer, QDF_MAC_ADDR_ARRAY(peer->mac_addr.raw)); - if (!cds_is_driver_recovering() && !cds_is_fw_down()) { - qdf_create_work(0, &txrx_pdev->peer_unmap_timer_work, - peer_unmap_timer_work_function, - peer); - /* Make sure peer is present before scheduling work */ - ol_txrx_peer_get_ref(peer, PEER_DEBUG_ID_OL_UNMAP_TIMER_WORK); - qdf_sched_work(0, &txrx_pdev->peer_unmap_timer_work); + if (cds_is_self_recovery_enabled()) { + if (!cds_is_driver_recovering() && !cds_is_fw_down()) + cds_trigger_recovery(QDF_PEER_UNMAP_TIMEDOUT); + else + ol_txrx_err("Recovery is in progress, ignore!"); } else { - ol_txrx_err("Recovery is in progress, ignore!"); + QDF_BUG(0); } } diff --git a/core/dp/txrx/ol_txrx.h b/core/dp/txrx/ol_txrx.h index f8ae203c5f1f..dd38659d8898 100644 --- a/core/dp/txrx/ol_txrx.h +++ b/core/dp/txrx/ol_txrx.h @@ -166,7 +166,6 @@ void *ol_txrx_find_peer_by_addr(struct cdp_pdev *pdev, uint8_t *peer_id); void htt_pkt_log_init(struct cdp_pdev *pdev_handle, void *scn); -void peer_unmap_timer_work_function(void *); void peer_unmap_timer_handler(void *data); #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL diff --git a/core/dp/txrx/ol_txrx_types.h b/core/dp/txrx/ol_txrx_types.h index 3e4069832c60..a95b2e87ce0e 100644 --- a/core/dp/txrx/ol_txrx_types.h +++ b/core/dp/txrx/ol_txrx_types.h @@ -1060,7 +1060,6 @@ struct ol_txrx_pdev_t { void (*offld_flush_cb)(void *); struct ol_txrx_peer_t *self_peer; - qdf_work_t peer_unmap_timer_work; /* dp debug fs */ struct dentry *dpt_stats_log_dir;