]> rtime.felk.cvut.cz Git - jailhouse.git/commitdiff
x86: vtd: Do not overrun while counting IOMMU units
authorJan Kiszka <jan.kiszka@siemens.com>
Thu, 2 Jul 2015 07:23:37 +0000 (09:23 +0200)
committerJan Kiszka <jan.kiszka@siemens.com>
Thu, 2 Jul 2015 07:43:10 +0000 (09:43 +0200)
Account for the case that we have JAILHOUSE_MAX_IOMMU_UNITS units, thus
no zeroed entry in platform_info.x86.iommu_base.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
hypervisor/arch/x86/vtd.c

index 8c95c2fcfb0168b17ff2df6bc2c6539b410cf423..44474fb22e34501cf165884dbaee0aeaa445dc52 100644 (file)
@@ -482,7 +482,8 @@ int iommu_init(void)
 
        int_remap_table_size_log2 = n;
 
-       while (system_config->platform_info.x86.iommu_base[units])
+       while (units < JAILHOUSE_MAX_IOMMU_UNITS &&
+              system_config->platform_info.x86.iommu_base[units])
                units++;
        if (units == 0)
                return trace_error(-EINVAL);