diff options
| author | Linmao Li <lilinmao@kylinos.cn> | 2026-07-23 19:39:27 +0800 |
|---|---|---|
| committer | Lachlan Hodges <lachlan.hodges@morsemicro.com> | 2026-07-31 15:42:49 +1000 |
| commit | 333f7de560e1196034b67db16916b10a0c529e1d (patch) | |
| tree | 40ed845b9246be5683e69d51c823746bd657c99b /tools/perf/scripts/python/bin/stackcollapse-report | |
| parent | 4a0bd262df757b25fc4e2a53c947317c119ced4e (diff) | |
wifi: mm81x: prevent timers from outliving teardown
The three timer teardown paths call timer_delete_sync_try() and ignore
its return value. If a callback is running on another CPU it returns -1
without waiting, and it does not prevent a later rearm even when it does
deactivate a pending timer. mm81x_skbq_tx_complete() can rearm the
stale-status timer, and the rc and yaps callbacks queue work that rearms
their timers. Teardown can therefore continue with a callback still
running or the timer rearmed, so it fires after the associated state has
been freed.
Use timer_shutdown_sync() for these permanent teardowns: it waits for an
in-flight callback and prevents any future rearm. In mm81x_rc_deinit()
shut the timer down before cancel_work_sync() so the work can no longer
recreate the timer/work cycle.
Fixes: b1906cea00b0 ("wifi: mm81x: add mm81x Wi-Fi HaLow driver")
Signed-off-by: Linmao Li <lilinmao@kylinos.cn>
Reviewed-by: Dan Callaghan <dan.callaghan@morsemicro.com>
Link: https://patch.msgid.link/20260723113927.2370301-1-lilinmao@kylinos.cn
Signed-off-by: Lachlan Hodges <lachlan.hodges@morsemicro.com>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions
