[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] iommu/vt-d: do not assume page table levels for quarantine domain



commit 3af0a4f9228c64ebbb342bc333c7c8a765ceb8d2
Author:     Roger Pau Monné <roger.pau@xxxxxxxxxx>
AuthorDate: Tue Dec 19 13:48:09 2023 +0100
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Tue Dec 19 13:48:09 2023 +0100

    iommu/vt-d: do not assume page table levels for quarantine domain
    
    Like XSA-445, do not assume IOMMU page table levels on VT-d are always set
    based on DEFAULT_DOMAIN_ADDRESS_WIDTH and instead fetch the value set by
    intel_iommu_domain_init() from the domain iommu structure.  This prevents
    changes to intel_iommu_domain_init() possibly getting the levels out of sync
    with what intel_iommu_quarantine_init() expects.
    
    No functional change, since on Intel domains are hardcoded to use
    DEFAULT_DOMAIN_ADDRESS_WIDTH.
    
    Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 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 e13b7d99db..bc6181c9f9 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -3162,7 +3162,7 @@ static int cf_check intel_iommu_quarantine_init(struct 
pci_dev *pdev,
 {
     struct domain_iommu *hd = dom_iommu(dom_io);
     struct page_info *pg;
-    unsigned int agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
+    unsigned int agaw = hd->arch.vtd.agaw;
     unsigned int level = agaw_to_level(agaw);
     const struct acpi_drhd_unit *drhd;
     const struct acpi_rmrr_unit *rmrr;
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.