diff options
| author | Charles Keepax <ckeepax@opensource.cirrus.com> | 2026-03-16 14:14:49 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-04-06 13:17:31 +0100 |
| commit | 4e53116437e919c4b9a9d95fb73ae14fe0cfc8f9 (patch) | |
| tree | b3b5aa77001dd34e496b1c58bb09f6d62856e21b /rust/kernel/iommu/git@git.tavy.me:linux.git | |
| parent | 80a7916ca2d902b329a40e529c4c4131ae6ff273 (diff) | |
ASoC: SDCA: Fix errors in IRQ cleanup
IRQs are enabled through sdca_irq_populate() from component probe
using devm_request_threaded_irq(), this however means the IRQs can
persist if the sound card is torn down. Some of the IRQ handlers
store references to the card and the kcontrols which can then
fail. Some detail of the crash was explained in [1].
Generally it is not advised to use devm outside of bus probe, so
the code is updated to not use devm. The IRQ requests are not moved
to bus probe time as it makes passing the snd_soc_component into
the IRQs very awkward and would the require a second step once the
component is available, so it is simpler to just register the IRQs
at this point, even though that necessitates some manual cleanup.
Link: https://lore.kernel.org/linux-sound/20260310183829.2907805-1-gaggery.tsai@intel.com/ [1]
Fixes: b126394d9ec6 ("ASoC: SDCA: Generic interrupt support")
Reported-by: Gaggery Tsai <gaggery.tsai@intel.com>
Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260316141449.2950215-1-ckeepax@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'rust/kernel/iommu/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
