| From bb5a1106c70b3495f996f2d768022a2ac9035769 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 8 Jan 2022 11:08:14 -0800 |
| Subject: mt76: mt7921: fix crash when startup fails. |
| |
| From: Ben Greear <greearb@candelatech.com> |
| |
| [ Upstream commit 827e7799c61b978fbc2cc9dac66cb62401b2b3f0 ] |
| |
| If the nic fails to start, it is possible that the |
| reset_work has already been scheduled. Ensure the |
| work item is canceled so we do not have use-after-free |
| crash in case cleanup is called before the work item |
| is executed. |
| |
| This fixes crash on my x86_64 apu2 when mt7921k radio |
| fails to work. Radio still fails, but OS does not |
| crash. |
| |
| Signed-off-by: Ben Greear <greearb@candelatech.com> |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/mediatek/mt76/mt7921/main.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/main.c b/drivers/net/wireless/mediatek/mt76/mt7921/main.c |
| index 8c55562c1a8d..b3bd090a13f4 100644 |
| --- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c |
| +++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c |
| @@ -260,6 +260,7 @@ static void mt7921_stop(struct ieee80211_hw *hw) |
| |
| cancel_delayed_work_sync(&dev->pm.ps_work); |
| cancel_work_sync(&dev->pm.wake_work); |
| + cancel_work_sync(&dev->reset_work); |
| mt76_connac_free_pending_tx_skbs(&dev->pm, NULL); |
| |
| mt7921_mutex_acquire(dev); |
| -- |
| 2.35.1 |
| |