diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-12 18:54:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-11-12 18:54:39 -0500 |
commit | b5c551043617ecf84ad6bb888f96fdf4e4769d4c (patch) | |
tree | 2c2f7711f1e6c46446062e7531563491b10f6195 | |
parent | a0a6da1a735ba66c04019b39cca8f79008d6c434 (diff) | |
parent | b74831e6437c0cbbd310dc587579390a146dc7a0 (diff) |
Merge branch 'stable/xen-pcifront-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen
* 'stable/xen-pcifront-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
MAINTAINERS: Mark XEN lists as moderated
xen-pcifront: fix PCI reference leak
xen-pcifront: Remove duplicate inclusion of headers.
xen: fix memory leak in Xen PCI MSI/MSI-X allocator.
MAINTAINERS: Update mailing list name for Xen pieces.
-rw-r--r-- | MAINTAINERS | 6 | ||||
-rw-r--r-- | arch/x86/pci/xen.c | 8 | ||||
-rw-r--r-- | drivers/pci/xen-pcifront.c | 6 |
3 files changed, 11 insertions, 9 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 0094224ca79..6a16f21117d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -6598,14 +6598,14 @@ F: drivers/platform/x86 | |||
6598 | 6598 | ||
6599 | XEN PCI SUBSYSTEM | 6599 | XEN PCI SUBSYSTEM |
6600 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 6600 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
6601 | L: xen-devel@lists.xensource.com | 6601 | L: xen-devel@lists.xensource.com (moderated for non-subscribers) |
6602 | S: Supported | 6602 | S: Supported |
6603 | F: arch/x86/pci/*xen* | 6603 | F: arch/x86/pci/*xen* |
6604 | F: drivers/pci/*xen* | 6604 | F: drivers/pci/*xen* |
6605 | 6605 | ||
6606 | XEN SWIOTLB SUBSYSTEM | 6606 | XEN SWIOTLB SUBSYSTEM |
6607 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 6607 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
6608 | L: xen-devel@lists.xensource.com | 6608 | L: xen-devel@lists.xensource.com (moderated for non-subscribers) |
6609 | S: Supported | 6609 | S: Supported |
6610 | F: arch/x86/xen/*swiotlb* | 6610 | F: arch/x86/xen/*swiotlb* |
6611 | F: drivers/xen/*swiotlb* | 6611 | F: drivers/xen/*swiotlb* |
@@ -6613,7 +6613,7 @@ F: drivers/xen/*swiotlb* | |||
6613 | XEN HYPERVISOR INTERFACE | 6613 | XEN HYPERVISOR INTERFACE |
6614 | M: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> | 6614 | M: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> |
6615 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 6615 | M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> |
6616 | L: xen-devel@lists.xen.org | 6616 | L: xen-devel@lists.xensource.com (moderated for non-subscribers) |
6617 | L: virtualization@lists.osdl.org | 6617 | L: virtualization@lists.osdl.org |
6618 | S: Supported | 6618 | S: Supported |
6619 | F: arch/x86/xen/ | 6619 | F: arch/x86/xen/ |
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c index 117f5b8daf7..d7b5109f7a9 100644 --- a/arch/x86/pci/xen.c +++ b/arch/x86/pci/xen.c | |||
@@ -147,8 +147,10 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type) | |||
147 | irq = xen_allocate_pirq(v[i], 0, /* not sharable */ | 147 | irq = xen_allocate_pirq(v[i], 0, /* not sharable */ |
148 | (type == PCI_CAP_ID_MSIX) ? | 148 | (type == PCI_CAP_ID_MSIX) ? |
149 | "pcifront-msi-x" : "pcifront-msi"); | 149 | "pcifront-msi-x" : "pcifront-msi"); |
150 | if (irq < 0) | 150 | if (irq < 0) { |
151 | return -1; | 151 | ret = -1; |
152 | goto free; | ||
153 | } | ||
152 | 154 | ||
153 | ret = set_irq_msi(irq, msidesc); | 155 | ret = set_irq_msi(irq, msidesc); |
154 | if (ret) | 156 | if (ret) |
@@ -164,7 +166,7 @@ error: | |||
164 | if (ret == -ENODEV) | 166 | if (ret == -ENODEV) |
165 | dev_err(&dev->dev, "Xen PCI frontend has not registered" \ | 167 | dev_err(&dev->dev, "Xen PCI frontend has not registered" \ |
166 | " MSI/MSI-X support!\n"); | 168 | " MSI/MSI-X support!\n"); |
167 | 169 | free: | |
168 | kfree(v); | 170 | kfree(v); |
169 | return ret; | 171 | return ret; |
170 | } | 172 | } |
diff --git a/drivers/pci/xen-pcifront.c b/drivers/pci/xen-pcifront.c index a87c4985326..3a5a6fcc0ea 100644 --- a/drivers/pci/xen-pcifront.c +++ b/drivers/pci/xen-pcifront.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/spinlock.h> | 13 | #include <linux/spinlock.h> |
14 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
15 | #include <linux/msi.h> | 15 | #include <linux/msi.h> |
16 | #include <xen/xenbus.h> | ||
17 | #include <xen/interface/io/pciif.h> | 16 | #include <xen/interface/io/pciif.h> |
18 | #include <asm/xen/pci.h> | 17 | #include <asm/xen/pci.h> |
19 | #include <linux/interrupt.h> | 18 | #include <linux/interrupt.h> |
@@ -576,8 +575,9 @@ static pci_ers_result_t pcifront_common_process(int cmd, | |||
576 | 575 | ||
577 | pcidev = pci_get_bus_and_slot(bus, devfn); | 576 | pcidev = pci_get_bus_and_slot(bus, devfn); |
578 | if (!pcidev || !pcidev->driver) { | 577 | if (!pcidev || !pcidev->driver) { |
579 | dev_err(&pcidev->dev, | 578 | dev_err(&pdev->xdev->dev, "device or AER driver is NULL\n"); |
580 | "device or driver is NULL\n"); | 579 | if (pcidev) |
580 | pci_dev_put(pcidev); | ||
581 | return result; | 581 | return result; |
582 | } | 582 | } |
583 | pdrv = pcidev->driver; | 583 | pdrv = pcidev->driver; |