Merge tag 'ux500-defconfig-for-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel...
[deliverable/linux.git] / drivers / pci / msi.c
index 2c1075213beceac6bb0eb75be6aeef7adc8f34d7..aca7578b05e56205d854c6f76a5aac88c77d326e 100644 (file)
@@ -81,7 +81,10 @@ void default_teardown_msi_irqs(struct pci_dev *dev)
                int i, nvec;
                if (entry->irq == 0)
                        continue;
-               nvec = 1 << entry->msi_attrib.multiple;
+               if (entry->nvec_used)
+                       nvec = entry->nvec_used;
+               else
+                       nvec = 1 << entry->msi_attrib.multiple;
                for (i = 0; i < nvec; i++)
                        arch_teardown_msi_irq(entry->irq + i);
        }
@@ -336,7 +339,10 @@ static void free_msi_irqs(struct pci_dev *dev)
                int i, nvec;
                if (!entry->irq)
                        continue;
-               nvec = 1 << entry->msi_attrib.multiple;
+               if (entry->nvec_used)
+                       nvec = entry->nvec_used;
+               else
+                       nvec = 1 << entry->msi_attrib.multiple;
 #ifdef CONFIG_GENERIC_HARDIRQS
                for (i = 0; i < nvec; i++)
                        BUG_ON(irq_has_action(entry->irq + i));
This page took 0.027067 seconds and 5 git commands to generate.