diff options
Diffstat (limited to 'arch/i386/pci/common.c')
-rw-r--r-- | arch/i386/pci/common.c | 6 |
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 | ||
440 | void pcibios_disable_device (struct pci_dev *dev) | 442 | void 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 | } |