Re: [PATCH] PCI: altera-msi: Remove irq handler and data in one go

From: Thomas Gleixner
Date: Thu Nov 12 2020 - 13:19:29 EST


On Thu, Nov 12 2020 at 08:26, Bjorn Helgaas wrote:
> On Thu, Nov 12, 2020 at 02:50:42PM +0100, Thomas Gleixner wrote:
>> So I had a closer look and the reason why it only matters for the
>> chained handler case is that
>>
>> __irq_set_handler(..., is_chained = true, ...)
>>
>> starts up the interrupt immediately. So the order for this _must_ be:
>>
>> set_handler_data() -> set_handler()
>>
>> For regular interrupts it's really the mapping and allocation code which
>> does this long before the interrupt is started up. So the ordering does
>> not matter because the handler can't be reached before the full
>> setup is finished and the interrupt is actually started up.
>
> If the order truly doesn't matter here, maybe it's worth changing it
> to "set data, set handler" to avoid the need for a closer look to
> verify correctness and to make it harder to copy and paste to a place
> where it *does* matter?

Makes sense.