On Wed, Dec 21, 2022 at 3:45 PM Felix Fietkau <nbd@xxxxxxxx> wrote: > > I'm pretty sure that commit is unrelated to this issue. However, while > looking at the code I found a bug that would explain your issue. > > Please try this patch: > --- > --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c > +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c > @@ -422,15 +422,15 @@ void mt7921_roc_timer(struct timer_list *timer) > > static int mt7921_abort_roc(struct mt7921_phy *phy, struct mt7921_vif *vif) > { > - int err; > - > - if (!test_and_clear_bit(MT76_STATE_ROC, &phy->mt76->state)) > - return 0; > + int err = 0; > > del_timer_sync(&phy->roc_timer); > cancel_work_sync(&phy->roc_work); > - err = mt7921_mcu_abort_roc(phy, vif, phy->roc_token_id); > - clear_bit(MT76_STATE_ROC, &phy->mt76->state); > + > + mt7921_mutex_acquire(phy->dev); > + if (test_and_clear_bit(MT76_STATE_ROC, &phy->mt76->state)) > + err = mt7921_mcu_abort_roc(phy, vif, phy->roc_token_id); > + mt7921_mutex_release(phy->dev); > > return err; > } > @@ -487,13 +487,8 @@ static int mt7921_cancel_remain_on_channel(struct ieee80211_hw *hw, > { > struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; > struct mt7921_phy *phy = mt7921_hw_phy(hw); > - int err; > > - mt7921_mutex_acquire(phy->dev); > - err = mt7921_abort_roc(phy, mvif); > - mt7921_mutex_release(phy->dev); > - > - return err; > + return mt7921_abort_roc(phy, mvif); > } > > static int mt7921_set_channel(struct mt7921_phy *phy) > @@ -1778,11 +1773,8 @@ static void mt7921_mgd_complete_tx(struct ieee80211_hw *hw, > struct ieee80211_prep_tx_info *info) > { > struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; > - struct mt7921_dev *dev = mt7921_hw_dev(hw); > > - mt7921_mutex_acquire(dev); > mt7921_abort_roc(mvif->phy, mvif); > - mt7921_mutex_release(dev); > } > > const struct ieee80211_ops mt7921_ops = { > Unfortunately this patch did not fix the issue. There are still many messages in the logs "mt7921e 0000:05:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0010 address=0xffdc6a80 flags=0x0050]" [ 100.178131] wlp5s0: authenticate with 24:cf:24:c2:72:d0 [ 100.365876] wlp5s0: send auth to 24:cf:24:c2:72:d0 (try 1/3) [ 100.389318] mt7921e 0000:05:00.0: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0010 address=0xffdc6a80 flags=0x0050] [ 101.544116] wlp5s0: send auth to 24:cf:24:c2:72:d0 (try 2/3) [ 102.568019] wlp5s0: send auth to 24:cf:24:c2:72:d0 (try 3/3) [ 103.591880] wlp5s0: authentication with 24:cf:24:c2:72:d0 timed out [ 106.600014] mt7921e 0000:05:00.0: Message 00020003 (seq 9) timeout [ 109.607845] mt7921e 0000:05:00.0: Message 00020002 (seq 10) timeout [ 109.620007] ------------[ cut here ]------------ [ 109.620022] WARNING: CPU: 3 PID: 9 at drivers/iommu/dma-iommu.c:1035 iommu_dma_unmap_page+0x79/0x90 [ 109.620043] Modules linked in: uinput rfcomm snd_seq_dummy snd_hrtimer nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables nfnetlink qrtr snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi bnep sunrpc intel_rapl_msr intel_rapl_common snd_sof_amd_rembrandt snd_sof_amd_renoir snd_sof_amd_acp snd_sof_pci mt7921e snd_sof_xtensa_dsp edac_mce_amd binfmt_misc mt7921_common snd_sof mt76_connac_lib vfat snd_sof_utils fat snd_soc_core kvm_amd mt76 btusb snd_hda_intel snd_intel_dspcfg btrtl snd_intel_sdw_acpi snd_hda_codec btbcm snd_compress mac80211 ac97_bus kvm snd_seq btintel snd_hda_core snd_pcm_dmaengine snd_pci_ps snd_rpl_pci_acp6x snd_seq_device btmtk libarc4 irqbypass snd_hwdep snd_pci_acp6x bluetooth snd_pcm snd_pci_acp5x rapl cfg80211 snd_rn_pci_acp3x snd_acp_config snd_timer asus_nb_wmi [ 109.620311] snd_soc_acpi pcspkr wmi_bmof snd i2c_piix4 snd_pci_acp3x k10temp soundcore amd_pmc acpi_cpufreq asus_wireless joydev zram amdgpu hid_asus asus_wmi ledtrig_audio sparse_keymap drm_ttm_helper platform_profile crct10dif_pclmul ttm crc32_pclmul crc32c_intel polyval_clmulni polyval_generic iommu_v2 drm_buddy rfkill nvme gpu_sched ghash_clmulni_intel ucsi_acpi hid_multitouch drm_display_helper sha512_ssse3 typec_ucsi serio_raw nvme_core ccp r8169 sp5100_tco cec typec nvme_common i2c_hid_acpi i2c_hid video wmi ip6_tables ip_tables fuse [ 109.620495] CPU: 3 PID: 9 Comm: kworker/u32:0 Tainted: G W L ------- --- 6.2.0-0.rc0.20221220git6feb57c2fd7c.10.fc38.x86_64 #1 [ 109.620507] Hardware name: ASUSTeK COMPUTER INC. ROG Strix G513QY_G513QY/G513QY, BIOS G513QY.320 09/07/2022 [ 109.620516] Workqueue: mt76 mt7921_mac_reset_work [mt7921_common] [ 109.620543] RIP: 0010:iommu_dma_unmap_page+0x79/0x90 [ 109.620555] Code: 2b 48 3b 28 72 26 48 3b 68 08 73 20 4d 89 f8 44 89 f1 4c 89 ea 48 89 ee 48 89 df 5b 5d 41 5c 41 5d 41 5e 41 5f e9 e7 40 73 ff <0f> 0b 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 66 0f 1f 44 00 [ 109.620565] RSP: 0018:ffff9d8840147cb8 EFLAGS: 00010246 [ 109.620577] RAX: 0000000000000000 RBX: ffff8a33d334d0d0 RCX: 0000000000000000 [ 109.620586] RDX: 0000000000000000 RSI: 00000000000001c6 RDI: ffff9d8840147ca0 [ 109.620593] RBP: ffff8a33d334d0d0 R08: 00000000ffdc6000 R09: 0000000000000081 [ 109.620602] R10: 0000000000000001 R11: 000ffffffffff000 R12: 00000000ffdc6000 [ 109.620609] R13: 00000000000006c0 R14: 0000000000000002 R15: 0000000000000000 [ 109.620617] FS: 0000000000000000(0000) GS:ffff8a4296e00000(0000) knlGS:0000000000000000 [ 109.620665] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 109.620674] CR2: 00000091cba8e000 CR3: 0000000fc4428000 CR4: 0000000000750ee0 [ 109.620682] PKRU: 55555554 [ 109.620690] Call Trace: [ 109.620699] <TASK> [ 109.620719] dma_unmap_page_attrs+0x4c/0x1d0 [ 109.620744] mt76_dma_get_buf+0xaf/0x190 [mt76] [ 109.620777] mt76_dma_rx_cleanup+0xa0/0x150 [mt76] [ 109.620808] mt7921_wpdma_reset+0xb6/0x1d0 [mt7921e] [ 109.620837] mt7921e_mac_reset+0x141/0x2e0 [mt7921e] [ 109.620860] mt7921_mac_reset_work+0x8b/0x160 [mt7921_common] [ 109.620893] process_one_work+0x294/0x5b0 [ 109.620927] worker_thread+0x4f/0x3a0 [ 109.620946] ? __pfx_worker_thread+0x10/0x10 [ 109.620957] kthread+0xf5/0x120 [ 109.620967] ? __pfx_kthread+0x10/0x10 [ 109.620982] ret_from_fork+0x2c/0x50 [ 109.621022] </TASK> [ 109.621032] irq event stamp: 1066916 [ 109.621043] hardirqs last enabled at (1066924): [<ffffffffba1a957e>] __up_console_sem+0x5e/0x70 [ 109.621064] hardirqs last disabled at (1066931): [<ffffffffba1a9563>] __up_console_sem+0x43/0x70 [ 109.621081] softirqs last enabled at (1063892): [<ffffffffc16fae9f>] mt76_dma_rx_cleanup+0xcf/0x150 [mt76] [ 109.621102] softirqs last disabled at (1063910): [<ffffffffc16fae0d>] mt76_dma_rx_cleanup+0x3d/0x150 [mt76] [ 109.621135] ---[ end trace 0000000000000000 ]--- Full kernel log: https://pastebin.com/Qfhq6KDc -- Best Regards, Mike Gavrilov.