lkml.org 
[lkml]   [2008]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 1/3] remove msix_flush_writes()
msix_flush_writes() is being called exclusively after calling msi_set_mask_bit(),
and that function already does follow writel() by readl() in the MSI-X case.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Reviewed-by: Grant Grundler <grundler@parisc-linux.org>

---
drivers/pci/msi.c | 25 -------------------------
1 file changed, 25 deletions(-)
--- linux-2.6.28-rc4/drivers/pci/msi.c 2008-11-11 11:11:20.000000000 +0100
+++ 2.6.28-rc4-pci-msix-flush-writes/drivers/pci/msi.c 2008-11-07 09:11:36.000000000 +0100
@@ -103,29 +103,6 @@ static void msix_set_enable(struct pci_d
}
}

-static void msix_flush_writes(unsigned int irq)
-{
- struct msi_desc *entry;
-
- entry = get_irq_msi(irq);
- BUG_ON(!entry || !entry->dev);
- switch (entry->msi_attrib.type) {
- case PCI_CAP_ID_MSI:
- /* nothing to do */
- break;
- case PCI_CAP_ID_MSIX:
- {
- int offset = entry->msi_attrib.entry_nr * PCI_MSIX_ENTRY_SIZE +
- PCI_MSIX_ENTRY_VECTOR_CTRL_OFFSET;
- readl(entry->mask_base + offset);
- break;
- }
- default:
- BUG();
- break;
- }
-}
-
/*
* PCI 2.3 does not specify mask bits for each MSI interrupt. Attempting to
* mask all MSI interrupts by clearing the MSI enable bit does not work
@@ -255,13 +232,11 @@ void write_msi_msg(unsigned int irq, str
void mask_msi_irq(unsigned int irq)
{
msi_set_mask_bits(irq, 1, 1);
- msix_flush_writes(irq);
}

void unmask_msi_irq(unsigned int irq)
{
msi_set_mask_bits(irq, 1, 0);
- msix_flush_writes(irq);
}

static int msi_free_irqs(struct pci_dev* dev);




\
 
 \ /
  Last update: 2008-11-11 11:47    [from the cache]
©2003-2011 Jasper Spaans