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

Wen Gong quic_wgong at quicinc.com
Thu Nov 25 22:54:35 PST 2021


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@quicinc.com/

[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 at 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 at quicinc.com> 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 at quicinc.com>
>> 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
>>



More information about the ath11k mailing list