Search Linux Wireless

Re: [PATCH v2] ath11k: add wait operation for tx management packets for flush from mac80211

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux