> From: Jan Beulich <jbeulich@suse.com>
> Sent: Tuesday, November 23, 2021 9:40 PM
>
> 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 <jbeulich@suse.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
>
> --- a/xen/drivers/passthrough/vtd/iommu.c
> +++ b/xen/drivers/passthrough/vtd/iommu.c
> @@ -1229,7 +1229,7 @@ int __init iommu_alloc(struct acpi_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");