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    [W:0.037 / U:0.140 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site