diff options
| author | Myeonghun Pak <mhun512@gmail.com> | 2026-10-15 21:39:18 -0400 |
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2026-10-16 18:45:02 +0200 |
| commit | 0045cd6b8ab2319e9d8de46e5e329cdc35ce6d05 (patch) | |
| tree | e7a50bca1573b1a8ff7c6d5fadc9808f24cf9671 /include/linux/fsl/mc.h | |
| parent | 655e6054acfbc3a6e0ad0e78e006e62fd49f8335 (diff) | |
platform: cznic: turris-omnia-mcu: stop button emulation producers
The legacy MCU IRQ thread can requeue button-release emulation work
after its managed cleanup has canceled it. Since the IRQ is still active
at that point, the newly queued work can outlive device teardown and
access freed MCU state.
Use disable_delayed_work_sync() to prevent further queueing and drain
the worker before the IRQ action is released. Keep the parent IRQ active
while the worker completes. devm_add_action_or_reset() also drains the
work if action registration fails.
This issue was identified as part of our ongoing research while
reviewing kernel code.
Fixes: dfa556e45ae9 ("platform: cznic: turris-omnia-mcu: Add support for MCU connected GPIOs")
Assisted-by: LLM
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Link: https://lore.kernel.org/r/20261016013918.3492835-1-mhun512@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/linux/fsl/mc.h')
0 files changed, 0 insertions, 0 deletions
