Sfoglia il codice sorgente

qcacmn: 2k_jump error fix for sequence number mismatch

In some cases non aggregate packets with active BA session land in
2k_jump_error owing to sequence number mismatch.

Fix those cases by sending delba and the next addba is expected to reset
the sequence number

Change-Id: Ib95edf8744761abddb80cf28bf405d6fa52181c8
Prathyusha Guduri 6 anni fa
parent
commit
9e4bb950e4
1 ha cambiato i file con 8 aggiunte e 1 eliminazioni
  1. 8 1
      dp/wifi3.0/dp_rx_err.c

+ 8 - 1
dp/wifi3.0/dp_rx_err.c

@@ -541,7 +541,14 @@ dp_2k_jump_handle(struct dp_soc *soc,
 	}
 	qdf_spin_lock_bh(&rx_tid->tid_lock);
 	ppdu_id = hal_rx_attn_phy_ppdu_id_get(rx_tlv_hdr);
-	if (rx_tid->ppdu_id_2k != ppdu_id) {
+
+	/*
+	 * If BA session is created and a non-aggregate packet is
+	 * landing here then the issue is with sequence number mismatch.
+	 * Proceed with delba even in that case
+	 */
+	if (rx_tid->ppdu_id_2k != ppdu_id &&
+	    rx_tid->ba_status != DP_RX_BA_ACTIVE) {
 		rx_tid->ppdu_id_2k = ppdu_id;
 		qdf_spin_unlock_bh(&rx_tid->tid_lock);
 		goto free_nbuf;