diff mbox series

ath10k: Fix length of wmi tlv command for protected mgmt frames

Message ID 1550243977-8612-1-git-send-email-svishnoi@codeaurora.org (mailing list archive)
State New, archived
Headers show
Series ath10k: Fix length of wmi tlv command for protected mgmt frames | expand

Commit Message

Surabhi Vishnoi Feb. 15, 2019, 3:19 p.m. UTC
The length of wmi tlv command for management tx send is calculated
incorrectly in case of protected management frames as there is addition
of IEEE80211_CCMP_MIC_LEN twice. This leads to improper behaviour of
firmware as the wmi tlv mgmt tx send command for protected mgmt frames
is formed wrongly.

Fix the length calculation of wmi tlv command for mgmt tx send in case
of protected management frames by adding the IEEE80211_CCMP_MIC_LEN only
once.

Tested HW: WCN3990
Tested FW: WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1

Fixes: 1807da49733e "ath10k: wmi: add management tx by reference support over wmi"
Signed-off-by: Surabhi Vishnoi <svishnoi@codeaurora.org>
---
 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Kalle Valo Feb. 26, 2019, 1:04 p.m. UTC | #1
Surabhi Vishnoi <svishnoi@codeaurora.org> wrote:

> The length of wmi tlv command for management tx send is calculated
> incorrectly in case of protected management frames as there is addition
> of IEEE80211_CCMP_MIC_LEN twice. This leads to improper behaviour of
> firmware as the wmi tlv mgmt tx send command for protected mgmt frames
> is formed wrongly.
> 
> Fix the length calculation of wmi tlv command for mgmt tx send in case
> of protected management frames by adding the IEEE80211_CCMP_MIC_LEN only
> once.
> 
> Tested HW: WCN3990
> Tested FW: WLAN.HL.3.1-00784-QCAHLSWMTPLZ-1
> 
> Fixes: 1807da49733e "ath10k: wmi: add management tx by reference support over wmi"
> Signed-off-by: Surabhi Vishnoi <svishnoi@codeaurora.org>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

761156ff573d ath10k: Fix length of wmi tlv command for protected mgmt frames
diff mbox series

Patch

diff --git a/drivers/net/wireless/ath/ath10k/wmi-tlv.c b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
index 5d05bff..a1c28c1 100644
--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
@@ -2764,10 +2764,8 @@  static void *ath10k_wmi_tlv_put_wmm(void *ptr,
 	if ((ieee80211_is_action(hdr->frame_control) ||
 	     ieee80211_is_deauth(hdr->frame_control) ||
 	     ieee80211_is_disassoc(hdr->frame_control)) &&
-	     ieee80211_has_protected(hdr->frame_control)) {
-		len += IEEE80211_CCMP_MIC_LEN;
+	     ieee80211_has_protected(hdr->frame_control))
 		buf_len += IEEE80211_CCMP_MIC_LEN;
-	}
 
 	buf_len = min_t(u32, buf_len, WMI_TLV_MGMT_TX_FRAME_MAX_LEN);
 	buf_len = round_up(buf_len, 4);