[PATCH 4/5] vtd: Don't disable hwdom passthrough on unhandled SAGAW bits

Teddy Astie <[email protected]> Wed, 29 Jul 2026 11:59:46 +0200
Newsgroups gmane.comp.emulators.xen.devel
Message-ID <1785319342.8631fc262581453bbf619ec5b2062170.19fad53421a000e099@vates.tech>
On recent VT-d spec, bit 3 indicates support for 5-level pagetables,
this is currently considered unhandled and causes "hwdom passthrough"
to be disabled, even though it's unrelated.

Given these are is capability bits, we don't need to consider unhandled
bits, but only make sure that the ones we want (e.g 39-bit or 48-bit AGAW)
are set.

Fixes: 474fc7d3c652 ("iommu/vt-d: fix SAGAW capability parsing")
Signed-off-by: Teddy Astie <[email protected]>
---
 xen/drivers/passthrough/vtd/iommu.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index 5e9232d4b1..a3b718d0cc 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1327,14 +1327,7 @@ int __init iommu_alloc(struct acpi_drhd_unit *drhd)
     }
 
     if ( sagaw >> 3 )
-    {
-        printk_once(XENLOG_WARNING VTDPREFIX
-                    " Unhandled bits in SAGAW %#x%s\n",
-                    sagaw,
-                    iommu_hwdom_passthrough ? ", disabling passthrough" : "");
-
-        iommu_hwdom_passthrough = false;
-    }
+        printk_once(XENLOG_WARNING VTDPREFIX " Unhandled bits in SAGAW %#x\n", sagaw);
 
     iommu->nr_pt_levels = agaw_to_level(agaw);
     if ( min_pt_levels > iommu->nr_pt_levels )
-- 
2.54.0



-- 
Teddy Astie | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech