qref->info1 = u32_encode_bits(upper_32_bits(paddr),
                                      BUFFER_ADDR_INFO1_ADDR) |
                      u32_encode_bits(tid, DP_REO_QREF_NUM);
+       ath12k_hal_reo_shared_qaddr_cache_clear(ab);
 }
 
 static void ath12k_peer_rx_tid_qref_reset(struct ath12k_base *ab, u16 peer_id, u16 tid)
 
 void ath12k_hal_srng_shadow_config(struct ath12k_base *ab);
 void ath12k_hal_srng_shadow_update_hp_tp(struct ath12k_base *ab,
                                         struct hal_srng *srng);
+void ath12k_hal_reo_shared_qaddr_cache_clear(struct ath12k_base *ab);
 #endif
 
 // SPDX-License-Identifier: BSD-3-Clause-Clear
 /*
  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include "debug.h"
        ath12k_hif_write32(ab, reo_base + HAL_REO1_DEST_RING_CTRL_IX_3,
                           ring_hash_map);
 }
+
+void ath12k_hal_reo_shared_qaddr_cache_clear(struct ath12k_base *ab)
+{
+       u32 val;
+
+       lockdep_assert_held(&ab->base_lock);
+       val = ath12k_hif_read32(ab, HAL_SEQ_WCSS_UMAC_REO_REG +
+                               HAL_REO1_QDESC_ADDR(ab));
+
+       val |= u32_encode_bits(1, HAL_REO_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY);
+       ath12k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_REO_REG +
+                          HAL_REO1_QDESC_ADDR(ab), val);
+
+       val &= ~HAL_REO_QDESC_ADDR_READ_CLEAR_QDESC_ARRAY;
+       ath12k_hif_write32(ab, HAL_SEQ_WCSS_UMAC_REO_REG +
+                          HAL_REO1_QDESC_ADDR(ab), val);
+}