Re: [PATCH] genirq: Only call irq_ack if implemented by chip
From: Thomas Gleixner
Date: Tue Apr 21 2015 - 08:20:11 EST
On Wed, 15 Apr 2015, Adrian-Ken Rueegsegger wrote:
> To support PCI MSI(-X), we register our own platform-specific MSI
> operations (x86_msi.setup_msi_irqs, etc) and implement an irq_chip that
> simply provides the irq_mask and irq_unmask operations (by reusing the
> "regular" mask_msi_irq/unmask_msi_irq).
But why are you using the edge flow handler then?
> After encountering a null pointer dereference due to the irq_chip not
> providing an irq_ack operation, I examined the commit that changed the
> source of the irq_ack call, noticing that only the check in
> handle_edge_irq was dropped while the other call sites were kept. As the
> commit message did not provide me with additional information for that
> particular fragment of the change, I (prematurely) concluded that it was
> not intentional.
>
> If it is a prerequisite for IRQ chips to provide the irq_ack operation
> when used in conjunction with handle_edge_irq, then please ignore my
> patch. In that case, I will adjust our chip implementation
> accordingly.
Yes, it is more or less. And I really want to avoid the extra
conditional in the handler hotpath.
Thanks,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/