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> Signed-off-by: imxcc <xingchaochao@huawei.com> (cherry picked from commit fe59e0178d303c21480d2a03399fc562ee010721)
This commit is contained in:
parent
fc290dbd8a
commit
3a03f28c87
34
hw-arm-smmuv3-Fill-the-IOTLBEntry-arch_id-on-NH_VA-i.patch
Normal file
34
hw-arm-smmuv3-Fill-the-IOTLBEntry-arch_id-on-NH_VA-i.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
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
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user