diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-27 14:26:03 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-27 14:26:03 -0700 |
commit | 94b1661d08a27a8d2b1b0127c272987b0ab4ad6a (patch) | |
tree | 770f24b91cefd9bb689cf9af0df32fb0e92c34b2 /drivers | |
parent | 4e9a4b71f1eb23f35c394eb2b388dbe0389d316a (diff) | |
parent | 75cf7456dd87335f574dcd53c4ae616a2ad71a11 (diff) | |
download | linux-3.10-94b1661d08a27a8d2b1b0127c272987b0ab4ad6a.tar.gz linux-3.10-94b1661d08a27a8d2b1b0127c272987b0ab4ad6a.tar.bz2 linux-3.10-94b1661d08a27a8d2b1b0127c272987b0ab4ad6a.zip |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6:
[PATCH] PCI quirk: VIA IRQ fixup should only run for VIA southbridges
[PATCH] PCI: fix potential resource leak in drivers/pci/msi.c
[PATCH] PCI: Documentation: no more device ids
[PATCH] PCI: fix via irq SATA patch
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/msi.c | 4 | ||||
-rw-r--r-- | drivers/pci/quirks.c | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index 2087a397ef1..9855c4c920b 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c @@ -793,8 +793,10 @@ static int msix_capability_init(struct pci_dev *dev, if (!entry) break; vector = get_msi_vector(dev); - if (vector < 0) + if (vector < 0) { + kmem_cache_free(msi_cachep, entry); break; + } j = entries[i].entry; entries[i].vector = vector; diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c42ae2cf8d6..19e2b174d33 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -642,13 +642,15 @@ static void quirk_via_irq(struct pci_dev *dev) new_irq = dev->irq & 0xf; pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); if (new_irq != irq) { - printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n", + printk(KERN_INFO "PCI: VIA IRQ fixup for %s, from %d to %d\n", pci_name(dev), irq, new_irq); udelay(15); /* unknown if delay really needed */ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq); } } -DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq); +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq); +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq); +DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq); /* * VIA VT82C598 has its device ID settable and many BIOSes |