diff options
| author | Fan Wu <fanwu01@zju.edu.cn> | 2026-08-03 08:03:43 +0000 |
|---|---|---|
| committer | Jonathan Cameron <jonathan.cameron@oss.qualcomm.com> | 2026-08-31 00:52:41 +0100 |
| commit | 0f3f427076240e75ff265e61645627a71ca4918c (patch) | |
| tree | a13e36577d7ca5f4e43637e6ba357d5b51b28861 /tools/lib/python/kdoc/python_version.py | |
| parent | 5330036bc68d23672bfcc16c60c54701ae123083 (diff) | |
| download | linux-next-0f3f427076240e75ff265e61645627a71ca4918c.tar.gz linux-next-0f3f427076240e75ff265e61645627a71ca4918c.zip | |
iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind
The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via
schedule_delayed_work(); that work is cleared by a devm callback.
Register the devm callback before devm_request_irq() so the devres LIFO
teardown frees the IRQ first, ensuring the handler can no longer queue
work by the time the workqueue is cleared. Otherwise the handler could
re-arm the work and run it after the xadc structure has been freed.
This issue was found by an in-house static analysis tool.
Fixes: 2a9685d1a3b7 ("iio: adc: xilinx: use more devres helpers and remove remove()")
Cc: stable@vger.kernel.org
Assisted-by: Codex:gpt-5.6
Reviewed-by: David Lechner <dlechner@baylibre.com>
Signed-off-by: Fan Wu <fanwu01@zju.edu.cn>
Reviewed-by: Sai Krishna Potthuri <sai.krishna.potthuri@amd.com>
Signed-off-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
