diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 0038db0456..a10a65afd3 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -1452,6 +1452,7 @@ ol_txrx_pdev_attach(ol_txrx_soc_handle soc, TAILQ_INIT(&pdev->req_list); pdev->req_list_depth = 0; qdf_spinlock_create(&pdev->req_list_spinlock); + qdf_spinlock_create(&pdev->tx_mutex); /* do initial set up of the peer ID -> peer object lookup map */ if (ol_txrx_peer_find_attach(pdev)) @@ -1509,6 +1510,7 @@ fail2: qdf_spinlock_destroy(&pdev->tx_queue_spinlock); fail1: + qdf_spinlock_destroy(&pdev->tx_mutex); ol_txrx_tso_stats_deinit(pdev); ol_txrx_fw_stats_desc_pool_deinit(pdev); qdf_mem_free(pdev); @@ -1904,7 +1906,6 @@ ol_txrx_pdev_post_attach(struct cdp_pdev *ppdev) } /* initialize mutexes for tx desc alloc and peer lookup */ - qdf_spinlock_create(&pdev->tx_mutex); qdf_spinlock_create(&pdev->peer_ref_mutex); qdf_spinlock_create(&pdev->rx.mutex); qdf_spinlock_create(&pdev->last_real_peer_mutex); @@ -2040,7 +2041,6 @@ pn_trace_attach_fail: OL_RX_REORDER_TRACE_DETACH(pdev); reorder_trace_attach_fail: - qdf_spinlock_destroy(&pdev->tx_mutex); qdf_spinlock_destroy(&pdev->peer_ref_mutex); qdf_spinlock_destroy(&pdev->rx.mutex); qdf_spinlock_destroy(&pdev->last_real_peer_mutex); @@ -2206,7 +2206,6 @@ static void ol_txrx_pdev_pre_detach(struct cdp_pdev *ppdev, int force) htt_detach(pdev->htt_pdev); ol_tx_desc_dup_detect_deinit(pdev); - qdf_spinlock_destroy(&pdev->tx_mutex); qdf_spinlock_destroy(&pdev->peer_ref_mutex); qdf_spinlock_destroy(&pdev->last_real_peer_mutex); qdf_spinlock_destroy(&pdev->rx.mutex); @@ -2288,6 +2287,7 @@ static void ol_txrx_pdev_detach(struct cdp_pdev *ppdev, int force) qdf_spin_unlock_bh(&pdev->req_list_spinlock); qdf_spinlock_destroy(&pdev->req_list_spinlock); + qdf_spinlock_destroy(&pdev->tx_mutex); OL_RX_REORDER_TIMEOUT_CLEANUP(pdev);