Thread (15 messages) read the whole thread 15 messages, 4 authors, 2017-12-07

[PATCH] ACPI / GED: unregister interrupts during shutdown

From: rafael@kernel.org (Rafael J. Wysocki)
Date: 2017-12-07 17:10:28
Also in: linux-acpi, linux-arm-msm, lkml

On Thu, Dec 7, 2017 at 3:52 PM, Sinan Kaya [off-list ref] wrote:
Rafael,

On 12/7/2017 8:00 AM, Rafael J. Wysocki wrote:
quoted
quoted
Just don't use devm_request_threaded_irq()?  :)

Seriously, those are just "helper" functions if your code happens to
follow the pattern they provide, if not, then don't use them, it's not
that hard to provide the correct code to unwind things properly by "open
coding" this logic as needed.

The devm_*irq() functions are known for not being able to be used all of
the time for lots of shutdown and cleanup issues, this isn't the first
time it has happened, which is why we are very careful when taking
"cleanup" patches that use those functions.
I see, thanks for the clarification.

OK, we'll need to rework the driver somewhat, then.
Even if we got rid of devm_*irq() functions, I see that the free_irq() function
requires dev_id argument.

         * There can be multiple actions per IRQ descriptor, find the right
         * one based on the dev_id:

I still need to keep track of the dev_ids attached to request_irq() functions.
Right.
My take away from the discussion is:
1. don't use devm family of functions for IRQ registration/free
2. still keep track of the events
3. call free_irq on shutdown.
Yes.  And on remove too.

Thanks,
Rafael
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help