When the guest invalidates one S1 entry, it passes the asid. When propagating this invalidation downto the host, the asid information also must be passed. So let's fill the arch_id field introduced for that purpose and accordingly set the flags to indicate its presence. Signed-off-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com> Signed-off-by: imxcc <xingchaochao@huawei.com> (cherry picked from commit fe59e0178d303c21480d2a03399fc562ee010721)
35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
From dcda615b3d9b1acffee3d31d57974cc9e4bd0dee Mon Sep 17 00:00:00 2001
|
|
From: Eric Auger <eric.auger@redhat.com>
|
|
Date: Tue, 4 Sep 2018 08:48:33 -0400
|
|
Subject: [PATCH] hw/arm/smmuv3: Fill the IOTLBEntry arch_id on NH_VA
|
|
invalidation
|
|
|
|
When the guest invalidates one S1 entry, it passes the asid.
|
|
When propagating this invalidation downto the host, the asid
|
|
information also must be passed. So let's fill the arch_id field
|
|
introduced for that purpose and accordingly set the flags to
|
|
indicate its presence.
|
|
|
|
Signed-off-by: Eric Auger <eric.auger@redhat.com>
|
|
Signed-off-by: Kunkun Jiang <jiangkunkun@huawei.com>
|
|
---
|
|
hw/arm/smmuv3.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
|
|
index 3416f6a639..696c588f08 100644
|
|
--- a/hw/arm/smmuv3.c
|
|
+++ b/hw/arm/smmuv3.c
|
|
@@ -833,6 +833,8 @@ static void smmuv3_notify_iova(IOMMUMemoryRegion *mr,
|
|
event.entry.iova = iova;
|
|
event.entry.addr_mask = num_pages * (1 << granule) - 1;
|
|
event.entry.perm = IOMMU_NONE;
|
|
+ event.entry.flags = IOMMU_INV_FLAGS_ARCHID;
|
|
+ event.entry.arch_id = asid;
|
|
|
|
memory_region_notify_iommu_one(n, &event);
|
|
}
|
|
--
|
|
2.27.0
|
|
|