/[packages]/cauldron/kernel/current/PATCHES/patches/0040-ath10k-fix-tx-status-flag-setting-for-management-fra.patch
ViewVC logotype

Contents of /cauldron/kernel/current/PATCHES/patches/0040-ath10k-fix-tx-status-flag-setting-for-management-fra.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1329221 - (show annotations) (download)
Fri Nov 9 22:05:45 2018 UTC (5 years, 10 months ago) by tmb
File size: 1659 byte(s)
add fixes from sashas autosel queue
1 From 2849f83421743ece753908a74098514a90a28ed8 Mon Sep 17 00:00:00 2001
2 From: Rakesh Pillai <pillair@codeaurora.org>
3 Date: Thu, 6 Sep 2018 18:57:27 +0530
4 Subject: [PATCH 040/145] ath10k: fix tx status flag setting for management
5 frames
6
7 [ Upstream commit 058a7eab9d9ee12f57282eb0b606668dada70d7a ]
8
9 The tx_status for management frames is being filled
10 incorrectly in the flags of skb_cb. This incorrect
11 flag setting causes the upper layers to consider that
12 the particular frame was not transmitted properly,
13 leading to improper behavior.
14
15 Set the IEEE80211_TX_STAT_ACK flag in the info flags
16 of skb_cb, to indicate the successful transmission of
17 the management frame.
18
19 Tested HW: WCN3990
20 Tested FW: WLAN.HL.2.0-01188-QCAHLSWMTPLZ-1
21
22 Fixes: dc405152bb64d4ae01c9ac669de25b2d1fb6fc2d
23 Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
24 Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
25 Signed-off-by: Sasha Levin <sashal@kernel.org>
26 ---
27 drivers/net/wireless/ath/ath10k/wmi.c | 7 ++++++-
28 1 file changed, 6 insertions(+), 1 deletion(-)
29
30 diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
31 index fd612d2905b0..1dced0dae9cd 100644
32 --- a/drivers/net/wireless/ath/ath10k/wmi.c
33 +++ b/drivers/net/wireless/ath/ath10k/wmi.c
34 @@ -2336,7 +2336,12 @@ static int wmi_process_mgmt_tx_comp(struct ath10k *ar, u32 desc_id,
35 dma_unmap_single(ar->dev, pkt_addr->paddr,
36 msdu->len, DMA_FROM_DEVICE);
37 info = IEEE80211_SKB_CB(msdu);
38 - info->flags |= status;
39 +
40 + if (status)
41 + info->flags &= ~IEEE80211_TX_STAT_ACK;
42 + else
43 + info->flags |= IEEE80211_TX_STAT_ACK;
44 +
45 ieee80211_tx_status_irqsafe(ar->hw, msdu);
46
47 ret = 0;
48 --
49 2.19.1
50

  ViewVC Help
Powered by ViewVC 1.1.30