diff options
| author | Fan Wu <fanwu01@zju.edu.cn> | 2026-07-19 01:00:13 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-07-27 18:41:24 +0100 |
| commit | d710f43ce30975d197f73c543bfe47b958d8ba17 (patch) | |
| tree | dd79df5f947dd4712aba1e7d8572529655f983de /tools/perf/scripts/python/bin/stackcollapse-report | |
| parent | ed4b52b24c556cd681b99739e2bbef7cf48fe66e (diff) | |
spi: oc-tiny: switch to managed controller allocation
The controller is allocated with the non-managed spi_alloc_host() while
the interrupt is registered with devm_request_irq(). During removal,
spi_bitbang_stop() only unregisters the controller; the subsequent
spi_controller_put() then frees the controller together with its
embedded driver-private devdata, which is the IRQ handler's dev_id. The
devm_request_irq() release action (free_irq()), which drains the
handler, does not run until after .remove() returns. A late or latched
interrupt can therefore reach tiny_spi_irq() and dereference
already-freed memory (e.g. hw->base).
Switch to devm_spi_alloc_host() so that the devres LIFO order releases
the controller only after free_irq() has drained the handler, and drop
the now-redundant spi_controller_put() from .remove(). The probe error
path is simplified to direct returns.
This issue was found by an in-house static analysis tool.
Fixes: ce792580ea2c ("spi: add OpenCores tiny SPI driver")
Assisted-by: Codex:gpt-5.6
Signed-off-by: Fan Wu <fanwu01@zju.edu.cn>
Link: https://patch.msgid.link/20260719010014.3163356-1-fanwu01@zju.edu.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-report')
0 files changed, 0 insertions, 0 deletions
