mirror of
https://github.com/outbackdingo/mt76.git
synced 2026-10-24 13:26:48 +00:00
wifi: mt76: mt7921s: fix potential hung tasks during chip recovery
During chip recovery (e.g. chip reset), there is a possible situation that kernel worker reset_work is holding the lock and waiting for kernel thread stat_worker to be parked, while stat_worker is waiting for the release of the same lock. It causes a deadlock resulting in the dumping of hung tasks messages and possible rebooting of the device. This patch prevents the execution of stat_worker during the chip recovery. Signed-off-by: Leon Yen <[email protected]> Signed-off-by: Ming Yen Hsieh <[email protected]> Signed-off-by: Felix Fietkau <[email protected]>
This commit is contained in:
@@ -499,7 +499,8 @@ static void mt76s_tx_status_data(struct mt76_worker *worker)
|
||||
dev = container_of(sdio, struct mt76_dev, sdio);
|
||||
|
||||
while (true) {
|
||||
if (test_bit(MT76_REMOVED, &dev->phy.state))
|
||||
if (test_bit(MT76_RESET, &dev->phy.state) ||
|
||||
test_bit(MT76_REMOVED, &dev->phy.state))
|
||||
break;
|
||||
|
||||
if (!dev->drv->tx_status_data(dev, &update))
|
||||
|
||||
Reference in New Issue
Block a user