[PATCH] ASoC: mchp-spdiftx: Fix a deadlock with the interrupt handler

Mark Brown broonie at kernel.org
Wed Sep 23 06:36:54 PDT 2026


On Wed, Sep 23, 2026 at 04:44:01PM +0800, Ginger Li wrote:
> mchp_spdiftx_interrupt() is a hardirq handler and takes ctrl->lock to
> serialize the user data and channel status updates, while
> mchp_spdiftx_trigger() takes the same lock with spin_lock() from process
> context.

> Interrupts stay enabled while the lock is held in mchp_spdiftx_trigger(), so
> if an SPDIFTX interrupt is delivered on the CPU that is inside that critical
> section, the hardirq handler spins on a lock that the interrupted code is
> holding and can never release.

Are you sure, interrupts should be disabled during trigger...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20260923/f29318b8/attachment.sig>


More information about the linux-arm-kernel mailing list