1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/net/wireless/ath
Wen Gong e6f1c0d26a ath10k: restore tx sk_buff of htt header for SDIO
ieee80211_report_used_skb of mac80211 use the frame_control of
ieee80211_hdr in sk_buff and indicate it to another function
ieee80211_mgd_conn_tx_status, then it queue work ieee80211_sta_work,
but ieee80211_is_auth(fc) in ieee80211_sta_work check fail when the
authentication has transmitted by ath10k.

When the ath10k report it with HTT_TX_COMPL_STATE_DISCARD, it will be
set without flag IEEE80211_TX_STAT_ACK, then mac80211 should try the
next authentication immeditely, but in fact mac80211 wait 1 second for
it, the reason is ieee80211_is_auth(fc) in ieee80211_sta_work check
fail for the sk_buff which is not restored, the data of sk_buff is not
the begin of ieee80211_hdr, in fact it is the begin of htt_cmd_hdr.

dmesg without this patch, it wait 1 second for the next retry when
ath10k report without IEEE80211_TX_STAT_ACK for authentication:
[ 6973.883116] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 1/3)
[ 6974.705471] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 2/3)
[ 6975.712962] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 3/3)

Restore the sk_buff make mac8011 retry the next authentication
immeditely which meet logic of mac80211.

dmesg with this patch, it retry the next immeditely when ath10k
report without IEEE80211_TX_STAT_ACK for authentication:
[  216.734813] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 1/3)
[  216.739914] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 2/3)
[  216.745874] wlan0: send auth to 5e:6f:2b:0d:fb:d7 (try 3/3)

Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00049

Signed-off-by: Wen Gong <wgong@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1612839530-2263-1-git-send-email-wgong@codeaurora.org
2021-02-11 08:47:53 +02:00
..
ar5523 treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
ath5k ath: Modify ath_key_delete() to not need full key entry 2020-12-17 08:51:17 +02:00
ath6kl cfg80211: avoid holding the RTNL when calling the driver 2021-01-26 11:55:50 +01:00
ath9k Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2021-01-11 19:42:29 +02:00
ath10k ath10k: restore tx sk_buff of htt header for SDIO 2021-02-11 08:47:53 +02:00
ath11k ath11k: fix a locking bug in ath11k_mac_op_start() 2021-02-10 09:45:57 +02:00
carl9170 carl9170: fix struct alignment conflict 2021-02-09 09:24:20 +02:00
wcn36xx wcn36xx: del BA session on TX stop 2021-02-09 09:23:38 +02:00
wil6210 wil6210: Add Support for Extended DMG MCS 12.1 2021-02-09 09:25:52 +02:00
ath.h ath: Modify ath_key_delete() to not need full key entry 2020-12-17 08:51:17 +02:00
debug.c ath: Make ath_opmode_to_string understand OCB mode 2015-08-10 22:21:15 +03:00
dfs_pattern_detector.c ath: dfs_pattern_detector: Fix some function kernel-doc headers 2020-11-07 10:06:46 +02:00
dfs_pattern_detector.h ath: add support to get the detected radar specifications 2018-05-25 13:15:21 +03:00
dfs_pri_detector.c ath: dfs_pri_detector: Demote zero/half completed kernel-doc headers 2020-11-07 10:06:49 +02:00
dfs_pri_detector.h ath: add support to get the detected radar specifications 2018-05-25 13:15:21 +03:00
hw.c
Kconfig Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2020-06-15 20:18:39 +03:00
key.c ath: Modify ath_key_delete() to not need full key entry 2020-12-17 08:51:17 +02:00
main.c ath9k: add a helper to get the string representation of ath_bus_type 2016-11-15 16:55:37 +02:00
Makefile ath11k: driver for Qualcomm IEEE 802.11ax devices 2019-11-25 14:16:34 +02:00
reg.h
regd.c ath: regd: Provide description for ath_reg_apply_ir_flags's 'reg' param 2020-11-07 10:06:43 +02:00
regd.h ath: drop duplicated define 2019-04-29 17:55:53 +03:00
regd_common.h ath: regd: add extra US coutry codes 2019-02-07 17:02:19 +02:00
spectral_common.h ath11k: add support for spectral scan 2020-06-15 17:21:54 +03:00
trace.c
trace.h