Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 07cf2a64 authored by Jiri Slaby's avatar Jiri Slaby Committed by Konrad Rzeszutek Wilk
Browse files

xen: fix memory leak in Xen PCI MSI/MSI-X allocator.



Stanse found that xen_setup_msi_irqs leaks memory when
xen_allocate_pirq fails. Free the memory in that fail path.

Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: xen-devel@lists.xensource.com
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
parent 1688c3d6
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -147,8 +147,10 @@ static int xen_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
		irq = xen_allocate_pirq(v[i], 0, /* not sharable */
			(type == PCI_CAP_ID_MSIX) ?
			"pcifront-msi-x" : "pcifront-msi");
		if (irq < 0)
			return -1;
		if (irq < 0) {
			ret = -1;
			goto free;
		}

		ret = set_irq_msi(irq, msidesc);
		if (ret)
@@ -164,7 +166,7 @@ error:
	if (ret == -ENODEV)
		dev_err(&dev->dev, "Xen PCI frontend has not registered" \
			" MSI/MSI-X support!\n");

free:
	kfree(v);
	return ret;
}