Hi Kalle,
I have sent new version patch, I have test it for connect/disconnect, it
is OK now, it will not happen timed out.
https://patchwork.kernel.org/project/linux-wireless/patch/20211126064934.26490-1-quic_wgong@xxxxxxxxxxx/
[PATCH v3] ath11k: add wait operation for tx management packets for
flush from mac80211
On 11/26/2021 11:32 AM, Wen Gong wrote:
Hi Kalle,
I have found the reason.
I will send new version to fix it.
It is because commit c0b0d2e87d91ce283c8766b4b3c2ec9ac90ebf96 (ath11k:
Increment pending_mgmt_tx count before tx send invoke) which commit at
Nov 15 11:25:52 2021.
And my rebase is auto merged by git, then it inc twice for
num_pending_mgmt_tx.
wgong@wgong-HP3-Z230-SFF-Workstation:~/ath11k/ath-upstream$ git
cherry-pick 0869610178a1
Auto-merging drivers/net/wireless/ath/ath11k/wmi.c
Auto-merging drivers/net/wireless/ath/ath11k/mac.c
Auto-merging drivers/net/wireless/ath/ath11k/core.h
Auto-merging drivers/net/wireless/ath/ath11k/core.c
[add_wait_mgmt_ath-202111221436 954d233dbe34] ath11k: add wait
operation for tx management packets for flush from mac80211
On 11/22/2021 8:19 PM, Kalle Valo wrote:
Wen Gong <quic_wgong@xxxxxxxxxxx> writes:
In ath11k, tx of management packet is doing in a work queue. Sometimes
the workqueue does not finish tx immediately, then it lead after the
next
step of vdev delete finished, it start to send the management packet to
firmware and lead firmware crash.
ieee80211_set_disassoc have logic of ieee80211_flush_queues after it
send_deauth_disassoc to ath11k, its purpose is make sure the deauth
was actually sent, so it need to change ath11k to match the purpose
of mac80211.
To address these issue wait for tx mgmt and tx data packets.
Tested-on: QCA6390 hw2.0 PCI
WLAN.HST.1.0.1-01230-QCAHSTSWPLZ_V2_TO_X86-1
Signed-off-by: Wen Gong <quic_wgong@xxxxxxxxxxx>
I sometimes see new warnings with this patch:
[ 142.346474] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit
queue 0
[ 147.466367] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit
queue 0
And more importantly this breaks suspend on my NUC testbox:
[ 175.141820] PM: suspend entry (deep)
[ 175.150512] Filesystems sync: 0.008 seconds
[ 175.229703] Freezing user space processes ... (elapsed 0.003
seconds) done.
[ 175.233506] OOM killer disabled.
[ 175.233588] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[ 175.242457] printk: Suspending console(s) (use no_console_suspend
to debug)
[ 175.245269] wlan0: deauthenticating from 00:03:7f:48:81:59 by
local choice (Reason: 3=DEAUTH_LEAVING)
[ 175.285881] e1000e: EEE TX LPI TIMER: 00000011
[ 180.745259] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit
queue 0
[ 185.864977] ath11k_pci 0000:06:00.0: failed to flush mgmt transmit
queue 0
[ 185.970601] PM: Some devices failed to suspend, or early wake
event detected
[ 185.974081] usb usb3: root hub lost power or was reset
[ 185.974135] usb usb4: root hub lost power or was reset
[ 186.098870] nvme nvme0: 8/0/0 default/read/poll queues
[ 186.297077] OOM killer enabled.
[ 186.297361] Restarting tasks ... done.
[ 186.343733] PM: suspend exit
My setup:
Tag: ath-202111221111
[ 151.123732] ath11k_pci 0000:06:00.0: MSI vectors: 32
[ 151.123851] ath11k_pci 0000:06:00.0: qca6390 hw2.0
[ 151.720618] ath11k_pci 0000:06:00.0: chip_id 0x0 chip_family 0xb
board_id 0xff soc_id 0xffffffff
[ 151.720912] ath11k_pci 0000:06:00.0: fw_version 0x101c06cc
fw_build_timestamp 2020-06-24 19:50 fw_build_id