Re: [PATCH] Input: wm831x-on - free the mapped IRQ on removal
From: Dmitry Torokhov
Date: Fri Oct 16 2026 - 15:04:02 EST
Hi Myeonghun,
On Thu, Oct 15, 2026 at 10:43:00PM -0400, Myeonghun Pak wrote:
> Probe requests the Linux IRQ returned by wm831x_irq(), but remove
> passes the untransformed MFD IRQ resource to free_irq(). The two numbers
> are not guaranteed to match. If they differ, the ON handler remains
> registered and can queue polling work after the input device and driver
> data have been released.
>
> Store the requested IRQ and free it before cancelling polling work on
> removal. Also cancel already queued work after free_irq() when input
> registration fails; free_irq() waits for the handler but does not cancel
> its work.
Why don't we switch to devm_delayed_work_autocancel() and
devm_request_irq() (or maybe use devm_request_threaded_itq() and get rid
of the delayed work)?
Also we need to get rid of wm831_irq() and make MFD give us already
mapped interrupt.
Thanks.
--
Dmitry