diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 2d8d649ad2cd..3be07de346a7 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -5698,6 +5698,7 @@ void dp_peer_unref_delete(void *peer_handle) #ifdef PEER_CACHE_RX_PKTS static inline void dp_peer_rx_bufq_resources_deinit(struct dp_peer *peer) { + dp_rx_flush_rx_cached(peer, true); qdf_list_destroy(&peer->bufq_info.cached_bufq); qdf_spinlock_destroy(&peer->bufq_info.bufq_lock); } @@ -5738,10 +5739,11 @@ static void dp_peer_delete_wifi3(void *peer_handle, uint32_t bitmap) FL("peer %pK (%pM)"), peer, peer->mac_addr.raw); dp_local_peer_id_free(peer->vdev->pdev, peer); - qdf_spinlock_destroy(&peer->peer_info_lock); dp_peer_rx_bufq_resources_deinit(peer); + qdf_spinlock_destroy(&peer->peer_info_lock); + /* * Remove the reference added during peer_attach. * The peer will still be left allocated until the