mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
AMD/iommu_detect: don't leak iommu structure on error paths
Tweak the logic slightly to return the real errors from
get_iommu_{,msi_}capabilities(), which at the moment is no functional change.
Coverity-ID: 1146950
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
b764615c39
commit
2af30e62c4
1 file changed
+8
-3
@@ -145,11 +145,11 @@ int __init amd_iommu_detect_one_acpi(
|
||||
rt = get_iommu_capabilities(iommu->seg, bus, dev, func,
|
||||
iommu->cap_offset, iommu);
|
||||
if ( rt )
|
||||
return -ENODEV;
|
||||
goto out;
|
||||
|
||||
rt = get_iommu_msi_capabilities(iommu->seg, bus, dev, func, iommu);
|
||||
if ( rt )
|
||||
return -ENODEV;
|
||||
goto out;
|
||||
|
||||
rt = pci_ro_device(iommu->seg, bus, PCI_DEVFN(dev, func));
|
||||
if ( rt )
|
||||
@@ -158,6 +158,11 @@ int __init amd_iommu_detect_one_acpi(
|
||||
iommu->seg, bus, dev, func, rt);
|
||||
|
||||
list_add_tail(&iommu->list, &amd_iommu_head);
|
||||
rt = 0;
|
||||
|
||||
return 0;
|
||||
out:
|
||||
if ( rt )
|
||||
xfree(iommu);
|
||||
|
||||
return rt;
|
||||
}
|
||||