On 7/1/21 3:59 PM, Bjorn Helgaas wrote: [snip] >> The IRQ handler is not called when unregistered, but it is called >> when another handler for the shared IRQ is unregistered. In this >> particular driver, both a "pcie-sys" and "pcie-client" handlers are >> registered, then an error leads to "pcie-sys" being unregistered and >> the handler for "pcie-client" being called. > > Is this really true? I think that would mean CONFIG_DEBUG_SHIRQ would > not find this kind of bug unless we actually registered two or more > handlers for the shared IRQ, but it's still a bug even only one > handler is registered. > > Looking at __free_irq() [1], my impression is that "action" is what > we're removing and action->handler() is the IRQ handler we call when > CONFIG_DEBUG_SHIRQ, so it doesn't look like it's calling the remaining > handlers after removing one of them. > Oh, you are completely right. I wrongly assumed that it was for the other registered IRQ handlers but reading the source is clearly how you say it. I now wonder why when debugging this I saw that the "pcie-client" handler was called when "pcie-sys" was unregistered... But anyways, you are correct and I'm OK with the text you shared. Best regards, -- Javier Martinez Canillas Software Engineer New Platform Technologies Enablement team RHEL Engineering