diff options
| author | Sean Wang <sean.wang@mediatek.com> | 2026-01-26 12:00:13 -0600 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2026-03-23 09:23:01 +0000 |
| commit | d5059e52fd8bc624ec4255c9fa01a266513d126b (patch) | |
| tree | 105d0896b2914946d5b5188a956ffefab843e430 /tools/perf/scripts/python/bin/stackcollapse-record | |
| parent | fdfa39f9f4fbae532b162da913a67b2410caf38f (diff) | |
wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
roc_abort_sync() can deadlock with roc_work(). roc_work() holds
dev->mt76.mutex, while cancel_work_sync() waits for roc_work()
to finish. If the caller already owns the same mutex, both
sides block and no progress is possible.
This deadlock can occur during station removal when
mt76_sta_state() -> mt76_sta_remove() -> mt7921_mac_sta_remove() ->
mt7921_roc_abort_sync() invokes cancel_work_sync() while
roc_work() is still running and holding dev->mt76.mutex.
This avoids the mutex deadlock and preserves exactly-once
work ownership.
Fixes: 352d966126e6 ("wifi: mt76: mt7921: fix a potential association failure upon resuming")
Co-developed-by: Quan Zhou <quan.zhou@mediatek.com>
Signed-off-by: Quan Zhou <quan.zhou@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Link: https://patch.msgid.link/20260126180013.8167-1-sean.wang@kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
