Abhishek Kumar <kuabhs@xxxxxxxxxxxx> writes: > On Tue, Dec 15, 2020 at 9:24 AM Youghandhar Chintala > <youghand@xxxxxxxxxxxxxx> wrote: >> >> From: Rakesh Pillai <pillair@xxxxxxxxxxxxxx> >> >> Currently after the hardware restart triggered from the driver, >> the station interface connection remains intact, since a disconnect >> trigger is not sent to userspace. This can lead to a problem in >> hardwares where the wifi mac sequence is added by the firmware. >> >> After the firmware restart, during subsytem recovery, the firmware >> restarts its wifi mac sequence number. Hence AP to which our device >> is connected will receive frames with a wifi mac sequence number jump >> to the past, thereby resulting in the AP dropping all these frames, >> until the frame arrives with a wifi mac sequence number which AP was >> expecting. >> >> To avoid such frame drops, its better to trigger a station disconnect >> upon the hardware restart. Indicate this support via a WIPHY flag >> to mac80211, if the hardware params flag mentions the support to >> add wifi mac sequence numbers for TX frames in the firmware. >> >> All the other hardwares, except WCN3990, are not affected by this >> change, since the hardware params flag is not set for any hardware >> except for WCN3990 >> >> Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.1-01040-QCAHLSWMTPLZ-1 >> Tested-on: QCA6174 hw3.2 PCI WLAN.RM.4.4.1-00110-QCARMSWP-1 >> Tested-on: QCA6174 hw3.2 SDIO WLAN.RMH.4.4.1-00048 >> >> Signed-off-by: Rakesh Pillai <pillair@xxxxxxxxxxxxxx> >> Signed-off-by: Youghandhar Chintala <youghand@xxxxxxxxxxxxxx> >> --- >> drivers/net/wireless/ath/ath10k/core.c | 15 +++++++++++++++ >> drivers/net/wireless/ath/ath10k/hw.h | 3 +++ >> drivers/net/wireless/ath/ath10k/mac.c | 3 +++ >> 3 files changed, 21 insertions(+) >> >> diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c >> index 796107b..4155f94 100644 >> --- a/drivers/net/wireless/ath/ath10k/core.c >> +++ b/drivers/net/wireless/ath/ath10k/core.c >> @@ -90,6 +90,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = { >> .hw_filter_reset_required = true, >> .fw_diag_ce_download = false, >> .tx_stats_over_pktlog = true, >> + .tx_mac_seq_by_fw = false, > > Probably orthogonal to this patch, there is a static array maintained > for different hardware configs and the structure members like > "tx_mac_seq_by_fw" are initialized. This does not seem to be scalable > and probably these parameters can be auto populated based on FW > capabilities and so we don't have to maintain the static array. > Thoughts? I'm not sure what you mean. But if you are saying that we should move ath10k_hw_params_list entirely to firmware then that is a huge task as we would need to make changes in every firmware branch, and there are so many different branches that I have lost count. And due to backwards compatibility we still need to have ath10k_hw_params_list in ath10k for few years. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches