From: Jan Beulich Date: Fri, 15 Oct 2021 09:17:56 +0000 (+0200) Subject: VT-d: PCI segment numbers are up to 16 bits wide X-Git-Tag: archive/raspbian/4.14.3+32-g9de3671772-1_deb11u1+rpi1^2^2~48^2~21 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d53afcdcb33a2724303dfd789eafcb830120d3b8;p=xen.git VT-d: PCI segment numbers are up to 16 bits wide We shouldn't silently truncate respective values. Signed-off-by: Jan Beulich Reviewed-by: Kevin Tian master commit: a3dd33e63c2c8c51102f223e6efe2e3d3bdcbec1 master date: 2021-09-20 10:25:03 +0200 --- diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index 70cfe9dc1f..870996abdb 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1486,7 +1486,8 @@ static int domain_context_mapping(struct domain *domain, u8 devfn, { struct acpi_drhd_unit *drhd; int ret = 0; - u8 seg = pdev->seg, bus = pdev->bus, secbus; + uint16_t seg = pdev->seg; + uint8_t bus = pdev->bus, secbus; drhd = acpi_find_matched_drhd_unit(pdev); if ( !drhd ) @@ -1700,7 +1701,8 @@ static int domain_context_unmap(struct domain *domain, u8 devfn, struct acpi_drhd_unit *drhd; struct vtd_iommu *iommu; int ret = 0; - u8 seg = pdev->seg, bus = pdev->bus, tmp_bus, tmp_devfn, secbus; + uint16_t seg = pdev->seg; + uint8_t bus = pdev->bus, tmp_bus, tmp_devfn, secbus; bool found; drhd = acpi_find_matched_drhd_unit(pdev);