summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2006-04-27 14:26:03 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-27 14:26:03 -0700
commit94b1661d08a27a8d2b1b0127c272987b0ab4ad6a (patch)
tree770f24b91cefd9bb689cf9af0df32fb0e92c34b2 /drivers
parent4e9a4b71f1eb23f35c394eb2b388dbe0389d316a (diff)
parent75cf7456dd87335f574dcd53c4ae616a2ad71a11 (diff)
downloadlinux-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.c4
-rw-r--r--drivers/pci/quirks.c6
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