lkml.org 
[lkml]   [2007]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3/6] msi: Fix msi_remove_pci_irq_vectors.
    Date

    Since msi_remove_pci_irq_vectors is designed to be called during
    hotplug remove it is actively wrong to query the hardware and expect
    meaningful results back.

    To that end remove the pci_find_capability calls. Testing
    dev->msi_enabled and dev->msix_enabled gives us all of the information
    we need.

    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    drivers/pci/msi.c | 8 ++------
    1 files changed, 2 insertions(+), 6 deletions(-)

    diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
    index 5e7a187..db9c1d7 100644
    --- a/drivers/pci/msi.c
    +++ b/drivers/pci/msi.c
    @@ -865,13 +865,10 @@ void pci_disable_msix(struct pci_dev* dev)
    **/
    void msi_remove_pci_irq_vectors(struct pci_dev* dev)
    {
    - int pos;
    -
    if (!pci_msi_enable || !dev)
    return;

    - pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
    - if (pos > 0 && dev->msi_enabled) {
    + if (dev->msi_enabled) {
    if (irq_has_action(dev->first_msi_irq)) {
    printk(KERN_WARNING "PCI: %s: msi_remove_pci_irq_vectors() "
    "called without free_irq() on MSI irq %d\n",
    @@ -880,8 +877,7 @@ void msi_remove_pci_irq_vectors(struct pci_dev* dev)
    } else /* Release MSI irq assigned to this device */
    msi_free_irq(dev, dev->first_msi_irq);
    }
    - pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
    - if (pos > 0 && dev->msix_enabled) {
    + if (dev->msix_enabled) {
    int irq, head, tail = 0, warning = 0;
    void __iomem *base = NULL;

    --
    1.4.4.1.g278f
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-01-28 20:49    [W:2.452 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site