• Felix Fietkau's avatar
    mt76: add rcu locking around tx scheduling · 1d868b70
    Felix Fietkau authored
    Fixes a reported lockdep error in mac80211:
    
    [  179.867321] =============================
    [  179.871510] WARNING: suspicious RCU usage
    [  179.875528] 4.14.32 #0 Not tainted
    [  179.878924] -----------------------------
    [  179.882981] backports-2017-11-01/net/mac80211/tx.c:594 suspicious rcu_dereference_check() usage!
    [  179.891785]
    [  179.891785] other info that might help us debug this:
    [  179.891785]
    [  179.899824]
    [  179.899824] rcu_scheduler_active = 2, debug_locks = 1
    [  179.906343] 2 locks held by ksoftirqd/0/7:
    [  179.910479]  #0:  (&(&q->lock)->rlock){+.-.}, at: [<86b207a4>] mt76_dma_tx_cleanup+0x64/0x354 [mt76]
    [  179.919734]  #1:  (&(&fq->lock)->rlock){+.-.}, at: [<87238410>] ieee80211_tx_dequeue+0x54/0xc3c [mac80211]
    [  179.929890]
    [  179.929890] stack backtrace:
    [  179.934257] CPU: 0 PID: 7 Comm: ksoftirqd/0 Not tainted 4.14.32 #0
    [  179.940421] Stack : 00000000 00000000 00000000 00000000 80e0fce2 00000036 00000000 00000000
    [  179.948864]         87c3d24c 80696377 8061039c 00000000 00000007 00000001 87c5db78 6534689d
    [  179.957306]         00000000 00000000 80e10000 87c5da74 00000001 0000015a 00000007 00000000
    [  179.965748]         00000000 806a0000 000e4171 00000000 00000000 00000000 ffffffff 00000001
    [  179.974189]         806c0000 8692b240 86b000d0 87316fe4 00000001 802c9a68 00000000 80700000
    [  179.982632]         ...
    [  179.985104] Call Trace:
    [  179.987582] [<80010a48>] show_stack+0x58/0x100
    [  179.992040] [<804c2c58>] dump_stack+0xe8/0x170
    [  179.996868] [<87234a04>] ieee80211_tx_h_select_key+0xa8/0x5b8 [mac80211]
    [  180.004299] [<87238d44>] ieee80211_tx_dequeue+0x988/0xc3c [mac80211]
    [  180.011048] [<86b230dc>] mt76_txq_schedule+0x110/0x3a4 [mt76]
    [  180.016821] [<86b209d0>] mt76_dma_tx_cleanup+0x290/0x354 [mt76]
    [  180.022777] [<86be2e60>] mt7603_tx_tasklet+0x40/0x6c [mt7603e]
    [  180.028637] [<80037058>] tasklet_action+0x110/0x1ec
    [  180.033532] [<804e1dac>] __do_softirq+0x164/0x35c
    [  180.038235] [<80037174>] run_ksoftirqd+0x40/0x84
    [  180.042870] [<800580c8>] smpboot_thread_fn+0x1a8/0x1d8
    [  180.048023] [<800542e8>] kthread+0x130/0x144
    [  180.052297] [<8000b1f8>] ret_from_kernel_thread+0x14/0x1c
    Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
    Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
    1d868b70
tx.c 11.4 KB