]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
wifi: mt76: mt7603: rework/fix rx pse hang check
authorFelix Fietkau <nbd@nbd.name>
Fri, 28 Jul 2023 07:51:01 +0000 (09:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:08:14 +0000 (11:08 +0100)
commit064b32f18db19dcedbc19e6bcaf49b10eabc7ffc
treeafb8a1e99c8b96d6b2a63e756d7d8c42cf864186
parent1afbb9ececd3f334cecc6330918dc9c93540b925
wifi: mt76: mt7603: rework/fix rx pse hang check

[ Upstream commit baa19b2e4b7bbb509a7ca7939c8785477dcd40ee ]

It turns out that the code in mt7603_rx_pse_busy() does not detect actual
hardware hangs, it only checks for busy conditions in PSE.
A reset should only be performed if these conditions are true and if there
is no rx activity as well.
Reset the counter whenever a rx interrupt occurs. In order to also deal with
a fully loaded CPU that leaves interrupts disabled with continuous NAPI
polling, also check for pending rx interrupts in the function itself.

Fixes: c8846e101502 ("mt76: add driver for MT7603E and MT7628/7688")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/wireless/mediatek/mt76/mt7603/core.c
drivers/net/wireless/mediatek/mt76/mt7603/mac.c