aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386/pci/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/pci/common.c')
-rw-r--r--arch/i386/pci/common.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
index 948436665385..3f78d4d8ecf3 100644
--- a/arch/i386/pci/common.c
+++ b/arch/i386/pci/common.c
@@ -434,11 +434,13 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
434 if ((err = pcibios_enable_resources(dev, mask)) < 0) 434 if ((err = pcibios_enable_resources(dev, mask)) < 0)
435 return err; 435 return err;
436 436
437 return pcibios_enable_irq(dev); 437 if (!dev->msi_enabled)
438 return pcibios_enable_irq(dev);
439 return 0;
438} 440}
439 441
440void pcibios_disable_device (struct pci_dev *dev) 442void pcibios_disable_device (struct pci_dev *dev)
441{ 443{
442 if (pcibios_disable_irq) 444 if (!dev->msi_enabled && pcibios_disable_irq)
443 pcibios_disable_irq(dev); 445 pcibios_disable_irq(dev);
444} 446}