From 9e4bb950e40e07bc5ac44d2203a9cdc198729a0c Mon Sep 17 00:00:00 2001 From: Prathyusha Guduri Date: Fri, 15 Mar 2019 17:41:19 +0530 Subject: [PATCH] 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 --- dp/wifi3.0/dp_rx_err.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index a0c86579f5..242e7e5aae 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/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;