On Fri, Dec 7, 2018 at 12:52 PM Thomas Gleixner tglx@linutronix.de wrote:
This irqchip is in drivers/pinctrl/qcom/pinctrl-msm.c and known as TLMM.
TLMM == Totally Lost Manufacturer Mess?
It's pretty OK for the most part actually.
You cannot invoke those callbacks from __irq_do_set_handler() as that is holding the irq descriptor lock with interrupts disabled.
How typical. Hm I wonder how to fix this properly then.
Needs more thought. Btw, the uninstall path does not invoke irq_deactive() either.... I so hate that chained handler mess....
I think it is just extremely uncommon to remove a chained handler (I don't know if anything exercises that path even) that is why we don't see any fallout from it. It's probably just untested code.
Do you see that chained handlers have any merit at all or should they all be moved to nested? The question needs asking, but IIUC there are performance benefits with chaining as opposed to nesting. :/
Yours, Linus Walleij