From: Jan Kiszka <jan.kis...@siemens.com> Bail out if they happen during cell init - apparently configuration errors. Skip the entry if that happens during cell exit (unlikely).
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- hypervisor/arch/arm64/smmu.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/hypervisor/arch/arm64/smmu.c b/hypervisor/arch/arm64/smmu.c index b89291e7..4c4bb279 100644 --- a/hypervisor/arch/arm64/smmu.c +++ b/hypervisor/arch/arm64/smmu.c @@ -863,10 +863,8 @@ static int arm_smmu_cell_init(struct cell *cell) for_each_smmu_sid(sid, cell->config, n) { ret = arm_smmu_find_sme(*sid, smmu_device[i].arm_sid_mask, i); - if (ret < 0) { - printk("arm_smmu_find_sme error %d\n", ret); - continue; - } + if (ret < 0) + return trace_error(-ret); idx = ret; s2cr[idx].type = type; @@ -898,7 +896,7 @@ static void arm_smmu_cell_exit(struct cell *cell) { const __u32 *sid; unsigned int n; - int ret, idx, i; + int idx, i; int cbndx = cell->config->id; struct jailhouse_iommu *iommu; @@ -919,11 +917,10 @@ static void arm_smmu_cell_exit(struct cell *cell) arm_smmu_tlb_sync_global(&smmu_device[i]); for_each_smmu_sid(sid, cell->config, n) { - ret = arm_smmu_find_sme(*sid, + idx = arm_smmu_find_sme(*sid, smmu_device[i].arm_sid_mask, i); - if (ret < 0) - printk("arm_smmu_find_sme error %d\n", ret); - idx = ret; + if (idx < 0) + continue; if (arm_smmu_free_sme(&smmu_device[i], idx)) arm_smmu_write_sme(&smmu_device[i], idx); -- 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 jailhouse-dev+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jailhouse-dev/a38f43616d17b754095f52767f25dab4fe8b192d.1601023807.git.jan.kiszka%40siemens.com.