mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-19 12:12:16 +00:00
Revert "hv: init_iommu rework to enable IOMMU for partition mode ACRN"
This reverts commit d8508e4229
.
This commit is contained in:
parent
40dfd3fc24
commit
d4afddc0a7
@ -659,18 +659,9 @@ static void dmar_set_root_table(struct dmar_drhd_rt *dmar_uint)
|
|||||||
{
|
{
|
||||||
uint64_t address;
|
uint64_t address;
|
||||||
uint32_t status;
|
uint32_t status;
|
||||||
void *root_table_vaddr = NULL;
|
|
||||||
|
|
||||||
spinlock_obtain(&(dmar_uint->lock));
|
spinlock_obtain(&(dmar_uint->lock));
|
||||||
|
|
||||||
root_table_vaddr = alloc_paging_struct();
|
|
||||||
|
|
||||||
if (root_table_vaddr != NULL) {
|
|
||||||
dmar_uint->root_table_addr = hva2hpa(root_table_vaddr);
|
|
||||||
} else {
|
|
||||||
ASSERT(false, "failed to allocate root table!");
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Currently don't support extended root table */
|
/* Currently don't support extended root table */
|
||||||
address = dmar_uint->root_table_addr;
|
address = dmar_uint->root_table_addr;
|
||||||
|
|
||||||
@ -982,7 +973,16 @@ static int add_iommu_device(struct iommu_domain *domain, uint16_t segment,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(dmar_uint->root_table_addr != 0UL, "root table is not setup");
|
if (dmar_uint->root_table_addr == 0UL) {
|
||||||
|
void *root_table_vaddr = alloc_paging_struct();
|
||||||
|
|
||||||
|
if (root_table_vaddr != NULL) {
|
||||||
|
dmar_uint->root_table_addr = hva2hpa(root_table_vaddr);
|
||||||
|
} else {
|
||||||
|
ASSERT(false, "failed to allocate root table!");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
root_table =
|
root_table =
|
||||||
(struct dmar_root_entry *)hpa2hva(dmar_uint->root_table_addr);
|
(struct dmar_root_entry *)hpa2hva(dmar_uint->root_table_addr);
|
||||||
@ -1277,8 +1277,6 @@ void init_iommu(void)
|
|||||||
spinlock_init(&domain_lock);
|
spinlock_init(&domain_lock);
|
||||||
|
|
||||||
register_hrhd_units();
|
register_hrhd_units();
|
||||||
|
|
||||||
enable_iommu();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void init_iommu_vm0_domain(struct vm *vm0)
|
void init_iommu_vm0_domain(struct vm *vm0)
|
||||||
@ -1298,4 +1296,5 @@ void init_iommu_vm0_domain(struct vm *vm0)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
cache_flush_invalidate_all();
|
cache_flush_invalidate_all();
|
||||||
|
enable_iommu();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user