[Patch Part2 v4 20/31] PCI/MSI: Kill redundant calling for irq_set_msi_desc() for MSIx interrupts
From: Yijing Wang <hidden>
Date: 2014-11-06 01:33:42
Also in:
linux-acpi, linux-pci, lkml
On 2014/11/6 6:45, Bjorn Helgaas wrote:
On Tue, Nov 04, 2014 at 08:01:54PM +0800, Jiang Liu wrote:quoted
It's arch_setup_msi_irq()/arch_setup_msi_irqs()'s responsibility to call irq_set_msi_desc() to associate IRQ descriptors and MSI descriptors, so kill the redundant call of irq_set_msi_desc() for MSIx interrupts in PCI MSI core."MSI-X" in English text, "msix" in code. The default arch_setup_msi_irq() in drivers/pci/msi.c doesn't call irq_set_msi_desc(). Does it happen somewhere inside chip->setup_irq()?
Yes. I also found this. http://www.spinics.net/lists/linux-pci/msg34256.html
I don't know how to verify that there are calls in all the places needed. That makes me wonder if the factoring is wrong -- maybe irq_set_msi_desc() could be done in some common place.
In my idea, place the irq_set_msi_desc() in common MSI core is ok, but currently almost all MSI arch code call irq_set_msi_desc() in arch code. So a lot of code need to change. And arch code setup MSI and MSI-X in the same way, so if MSI work happy without irq_set_msi_desc(entry->irq, entry) in common MSI code, MSI-X should be the same.
quoted
Signed-off-by: Jiang Liu <redacted> --- drivers/pci/msi.c | 1 - 1 file changed, 1 deletion(-)diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index afe974600c7d..da181c59394b 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c@@ -685,7 +685,6 @@ static void msix_program_entries(struct pci_dev *dev, PCI_MSIX_ENTRY_VECTOR_CTRL; entries[i].vector = entry->irq; - irq_set_msi_desc(entry->irq, entry); entry->masked = readl(entry->mask_base + offset); msix_mask_irq(entry, 1); i++;-- 1.7.10.4-- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo at vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html .
-- Thanks! Yijing