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: ZhenHua Li <zhen-hual@hp.com> Tested-by: Baoquan He <bhe@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
af3b358e48
commit
7c3c9876d9
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue