The interrupt remapping in-use bitmaps were leaked in all cases. The
ring buffers and the mapping of the MMIO space were leaked for any IOMMU
that hadn't been enabled yet.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Brian Woods <brian.woods@amd.com>
master commit:
6ae22e7aac8fb0d39318eb27eab439dd97521174
master date: 2019-07-22 11:59:01 +0200
{
list_del(&iommu->list);
if ( iommu->enabled )
- {
disable_iommu(iommu);
- deallocate_ring_buffer(&iommu->cmd_buffer);
- deallocate_ring_buffer(&iommu->event_log);
- deallocate_ring_buffer(&iommu->ppr_log);
- unmap_iommu_mmio_region(iommu);
- }
+
+ deallocate_ring_buffer(&iommu->cmd_buffer);
+ deallocate_ring_buffer(&iommu->event_log);
+ deallocate_ring_buffer(&iommu->ppr_log);
+ unmap_iommu_mmio_region(iommu);
xfree(iommu);
}
{
void *tb = ivrs_mapping->intremap_table;
+ XFREE(ivrs_mapping->intremap_inuse);
+
if ( tb )
{
__free_amd_iommu_tables(tb, INTREMAP_TABLE_ORDER);