PCI/MSI: Use irq_get_msi_desc() to simplify code
[deliverable/linux.git] / drivers / pci / msi.c
index 5bb99213f55d50f27edb61e9893c97537fd863cc..5a40516444f33d4c46f6067e089434b9e7840cda 100644 (file)
@@ -463,7 +463,6 @@ static void __pci_restore_msix_state(struct pci_dev *dev)
        if (!dev->msix_enabled)
                return;
        BUG_ON(list_empty(&dev->msi_list));
-       entry = list_first_entry(&dev->msi_list, struct msi_desc, list);
 
        /* route the table */
        pci_intx_for_msi(dev, 0);
@@ -488,7 +487,6 @@ EXPORT_SYMBOL_GPL(pci_restore_msi_state);
 static ssize_t msi_mode_show(struct device *dev, struct device_attribute *attr,
                             char *buf)
 {
-       struct pci_dev *pdev = to_pci_dev(dev);
        struct msi_desc *entry;
        unsigned long irq;
        int retval;
@@ -497,12 +495,11 @@ static ssize_t msi_mode_show(struct device *dev, struct device_attribute *attr,
        if (retval)
                return retval;
 
-       list_for_each_entry(entry, &pdev->msi_list, list) {
-               if (entry->irq == irq) {
-                       return sprintf(buf, "%s\n",
-                                      entry->msi_attrib.is_msix ? "msix" : "msi");
-               }
-       }
+       entry = irq_get_msi_desc(irq);
+       if (entry)
+               return sprintf(buf, "%s\n",
+                               entry->msi_attrib.is_msix ? "msix" : "msi");
+
        return -ENODEV;
 }
 
This page took 0.024064 seconds and 5 git commands to generate.