ANDROID: KVM: iommu: Restrict access KVM_IOMMU_DOMAIN_IDMAP_ID
KVM_IOMMU_DOMAIN_IDMAP_ID should only mirror the host stage-2, without interaction with pv interface. Bug: 277989609 Bug: 278749606 Change-Id: I6d9800c1a12c9f4dbfbb51c22f589614424aabaa Signed-off-by: Mostafa Saleh <smostafa@google.com>
This commit is contained in:
@@ -490,6 +490,9 @@ size_t kvm_iommu_map_pages(pkvm_handle_t domain_id,
|
||||
iova + size < iova || paddr + size < paddr)
|
||||
return -E2BIG;
|
||||
|
||||
if (domain_id == KVM_IOMMU_DOMAIN_IDMAP_ID)
|
||||
return -EINVAL;
|
||||
|
||||
domain = handle_to_domain(domain_id);
|
||||
if (!domain || domain_get(domain))
|
||||
return -ENOENT;
|
||||
@@ -553,6 +556,9 @@ size_t kvm_iommu_unmap_pages(pkvm_handle_t domain_id, unsigned long iova,
|
||||
iova + size < iova)
|
||||
return 0;
|
||||
|
||||
if (domain_id == KVM_IOMMU_DOMAIN_IDMAP_ID)
|
||||
return 0;
|
||||
|
||||
domain = handle_to_domain(domain_id);
|
||||
if (!domain || domain_get(domain))
|
||||
return 0;
|
||||
@@ -584,6 +590,9 @@ phys_addr_t kvm_iommu_iova_to_phys(pkvm_handle_t domain_id, unsigned long iova)
|
||||
if (!kvm_iommu_ops || !kvm_iommu_ops->iova_to_phys)
|
||||
return -ENODEV;
|
||||
|
||||
if (domain_id == KVM_IOMMU_DOMAIN_IDMAP_ID)
|
||||
return iova;
|
||||
|
||||
domain = handle_to_domain( domain_id);
|
||||
|
||||
if (!domain || domain_get(domain))
|
||||
|
||||
Reference in New Issue
Block a user