From: Jan Kiszka <[email protected]>

We do not handle faults, e.g. by resuming them later on. Stalling
failed transactions will soon lead to a stalled SMMU, blocking even
valid transactions.

This could easily be reproduced by stealing a used StreamID from the
root cell. On the Zynqmp, this lead to all transactions of the root cell
to be blocked.

Signed-off-by: Jan Kiszka <[email protected]>
---
 hypervisor/arch/arm64/smmu.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/hypervisor/arch/arm64/smmu.c b/hypervisor/arch/arm64/smmu.c
index 349cd0fc..d63f91cc 100644
--- a/hypervisor/arch/arm64/smmu.c
+++ b/hypervisor/arch/arm64/smmu.c
@@ -177,7 +177,6 @@
 #define ARM_SMMU_CB_CONTEXTIDR         0x34
 #define ARM_SMMU_CB_FSR                        0x58
 
-#define SCTLR_CFCFG                    (1 << 7)
 #define SCTLR_CFIE                     (1 << 6)
 #define SCTLR_CFRE                     (1 << 5)
 #define SCTLR_AFE                      (1 << 2)
@@ -457,10 +456,8 @@ static void arm_smmu_write_context_bank(struct 
arm_smmu_device *smmu, int idx)
        }
 
        /* SCTLR */
-       reg = SCTLR_CFCFG | SCTLR_CFIE | SCTLR_CFRE | SCTLR_AFE | SCTLR_TRE |
-               SCTLR_M;
-
-       mmio_write32(cb_base + ARM_SMMU_CB_SCTLR, reg);
+       mmio_write32(cb_base + ARM_SMMU_CB_SCTLR,
+                    SCTLR_CFIE | SCTLR_CFRE | SCTLR_AFE | SCTLR_TRE | SCTLR_M);
 }
 
 static int arm_smmu_device_reset(struct arm_smmu_device *smmu)
-- 
2.26.2

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/aa93d7ee77e711b3b44135a0adfd9d3bdea9d619.1602664150.git.jan.kiszka%40siemens.com.

Reply via email to