diff --git a/dp/wifi3.0/dp_peer.c b/dp/wifi3.0/dp_peer.c index 29c09c2b18..cf86646fbf 100644 --- a/dp/wifi3.0/dp_peer.c +++ b/dp/wifi3.0/dp_peer.c @@ -4896,9 +4896,7 @@ QDF_STATUS dp_register_peer(struct cdp_soc_t *soc_hdl, uint8_t pdev_id, peer->state = OL_TXRX_PEER_STATE_CONN; qdf_spin_unlock_bh(&peer->peer_info_lock); - /* For MLO connection, no RX packet to link peer */ - if (!IS_MLO_DP_LINK_PEER(peer)) - dp_rx_flush_rx_cached(peer, false); + dp_rx_flush_rx_cached(peer, false); if (IS_MLO_DP_LINK_PEER(peer) && peer->first_link) { dp_peer_info("register for mld peer" QDF_MAC_ADDR_FMT, diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 3e9955cdc9..2522b94529 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1693,6 +1693,13 @@ void dp_rx_flush_rx_cached(struct dp_peer *peer, bool drop) int num_buff_elem; QDF_STATUS status; + /* + * Flush dp cached frames only for mld peers and legacy peers, as + * link peers don't store cached frames + */ + if (IS_MLO_DP_LINK_PEER(peer)) + return; + if (!peer->txrx_peer) { if (!peer->sta_self_peer) { qdf_err("txrx_peer NULL!!");