From 08826a044ebfefc429aaecb861dc31051f2bb288 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 24 Nov 2021 11:12:03 +0100 Subject: [PATCH] VT-d: correct off-by-1 in fault register range check All our present implementation requires is that the range fully fits in a single page. No need to exclude the case of the last register extending right to the end of that page. Signed-off-by: Jan Beulich Reviewed-by: Kevin Tian --- xen/drivers/passthrough/vtd/iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index dab8590e25..c1bf48cbcb 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1273,7 +1273,7 @@ int __init iommu_alloc(struct acpi_drhd_unit *drhd) quirk_iommu_caps(iommu); if ( cap_fault_reg_offset(iommu->cap) + - cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN >= PAGE_SIZE || + cap_num_fault_regs(iommu->cap) * PRIMARY_FAULT_REG_LEN > PAGE_SIZE || ecap_iotlb_offset(iommu->ecap) >= PAGE_SIZE ) { printk(XENLOG_ERR VTDPREFIX "IOMMU: unsupported\n"); -- 2.30.2