On Fri, 02 Oct 2026 23:04:39 -0400, Myeonghun Pak wrote:
> The interrupt handler queues delayed work to read the interrupt status.
> After free_irq() stops the producer, this work can still be waiting on its
> timer. destroy_workqueue() cannot drain delayed work that has not yet been
> queued by its timer, so the timer can outlive both the workqueue and the
> devm-allocated chip containing the work.
>
> Cancel the delayed work synchronously after freeing the IRQ and before
> destroying the workqueue. This also waits for any running status read to
> finish before the chip's resources are released.
>
> [...]
Applied, thanks!
[1/1] backlight: lm3630a: Cancel delayed work before destroying workqueue
commit: 2cf184caab8b406fdd9db126ee40d62418237456
--
Lee Jones [李琼斯]