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

Commit 7c3c9876 authored by Joerg Roedel's avatar Joerg Roedel
Browse files

iommu/vt-d: Make sure copied over IR entries are not reused



Walk over the copied entries and mark the present ones as
allocated.

Tested-by: default avatarZhenHua Li <zhen-hual@hp.com>
Tested-by: default avatarBaoquan He <bhe@redhat.com>
Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent af3b358e
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -451,6 +451,7 @@ static int iommu_load_old_irte(struct intel_iommu *iommu)
{
	struct irte *old_ir_table;
	phys_addr_t irt_phys;
	unsigned int i;
	size_t size;
	u64 irta;

@@ -481,6 +482,15 @@ static int iommu_load_old_irte(struct intel_iommu *iommu)

	__iommu_flush_cache(iommu, iommu->ir_table->base, size);

	/*
	 * Now check the table for used entries and mark those as
	 * allocated in the bitmap
	 */
	for (i = 0; i < INTR_REMAP_TABLE_ENTRIES; i++) {
		if (iommu->ir_table->base[i].present)
			bitmap_set(iommu->ir_table->bitmap, i, 1);
	}

	return 0;
}