Skip to content

ath12k: pass the correct value of each TID during a stop AMPDU session#1090

Open
ArifAlam wants to merge 1 commit into
release/v4.2.0from
staging-qca-wifi-7-tid
Open

ath12k: pass the correct value of each TID during a stop AMPDU session#1090
ArifAlam wants to merge 1 commit into
release/v4.2.0from
staging-qca-wifi-7-tid

Conversation

@ArifAlam
Copy link
Copy Markdown
Collaborator

backport:
https://lore.kernel.org/all/20260227110123.3726354-1-reshma.rajkumar@oss.qualcomm.com/

With traffic ongoing for data TID [TID 0], an DELBA request to stop AMPDU for the BA session was received on management TID [TID 4]. The corresponding TID number was incorrectly passed to stop the BA session, resulting in the BA session for data TIDs being stopped and the BA size being reduced to 1, causing an overall dip in TCP throughput.

Fix this issue by passing the correct argument from ath12k_dp_rx_ampdu_stop() to ath12k_dp_arch_peer_rx_tid_reo_update() during an AMPDU stop session. Instead of passing peer->dp_peer->rx_tid, which is the base address of the array, corresponding to TID 0, pass the value of &peer->dp_peer->rx_tid[params->tid]. With this, the different TID numbers are accounted for.

@ArifAlam ArifAlam requested a review from blogic May 14, 2026 14:11
@ArifAlam
Copy link
Copy Markdown
Collaborator Author

Will resubmit the patch in mbox format which will retain upstream detail / description.

backport:
https://lore.kernel.org/all/20260227110123.3726354-1-reshma.rajkumar@oss.qualcomm.com/

With traffic ongoing for data TID [TID 0], an DELBA request to
stop AMPDU for the BA session was received on management TID [TID 4].
The corresponding TID number was incorrectly passed to stop the BA session,
resulting in the BA session for data TIDs being stopped and the BA size
being reduced to 1, causing an overall dip in TCP throughput.

Fix this issue by passing the correct argument from
ath12k_dp_rx_ampdu_stop() to ath12k_dp_arch_peer_rx_tid_reo_update()
during an AMPDU stop session. Instead of passing peer->dp_peer->rx_tid,
which is the base address of the array, corresponding to TID 0, pass
the value of &peer->dp_peer->rx_tid[params->tid]. With this, the
different TID numbers are accounted for.

Signed-off-by: Arif Alam <arif.alam@netexperience.com>
@ArifAlam ArifAlam force-pushed the staging-qca-wifi-7-tid branch from 5069431 to 164ade8 Compare May 14, 2026 15:54
@blogic
Copy link
Copy Markdown
Contributor

blogic commented May 18, 2026

@ArifAlam is this confirmed to fix the issue ? would merge it into the main branch in that case

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants