diff options
Diffstat (limited to '0044-VT-d-constrain-IGD-check.patch')
-rw-r--r-- | 0044-VT-d-constrain-IGD-check.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/0044-VT-d-constrain-IGD-check.patch b/0044-VT-d-constrain-IGD-check.patch new file mode 100644 index 0000000..13ca74e --- /dev/null +++ b/0044-VT-d-constrain-IGD-check.patch @@ -0,0 +1,44 @@ +From 4d42cc4d25c35ca381370a1fa0b45350723d1308 Mon Sep 17 00:00:00 2001 +From: Jan Beulich <jbeulich@suse.com> +Date: Tue, 21 Mar 2023 13:52:20 +0100 +Subject: [PATCH 44/61] VT-d: constrain IGD check + +Marking a DRHD as controlling an IGD isn't very sensible without +checking that at the very least it's a graphics device that lives at +0000:00:02.0. Re-use the reading of the class-code to control both the +clearing of "gfx_only" and the setting of "igd_drhd_address". + +Signed-off-by: Jan Beulich <jbeulich@suse.com> +Reviewed-by: Kevin Tian <kevin.tian@intel.com> +master commit: f8c4317295fa1cde1a81779b7e362651c084efb8 +master date: 2023-03-14 10:44:08 +0100 +--- + xen/drivers/passthrough/vtd/dmar.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c +index 33a12b2ae9..9ec49936b8 100644 +--- a/xen/drivers/passthrough/vtd/dmar.c ++++ b/xen/drivers/passthrough/vtd/dmar.c +@@ -391,15 +391,12 @@ static int __init acpi_parse_dev_scope( + + if ( drhd ) + { +- if ( (seg == 0) && (bus == 0) && (path->dev == 2) && +- (path->fn == 0) ) +- igd_drhd_address = drhd->address; +- +- if ( gfx_only && +- pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn), ++ if ( pci_conf_read8(PCI_SBDF(seg, bus, path->dev, path->fn), + PCI_CLASS_DEVICE + 1) != 0x03 + /* PCI_BASE_CLASS_DISPLAY */ ) + gfx_only = false; ++ else if ( !seg && !bus && path->dev == 2 && !path->fn ) ++ igd_drhd_address = drhd->address; + } + + break; +-- +2.40.0 + |