Mailing List Archive

[xen stable-4.17] VT-d: constrain IGD check
commit f971f5c531ce6a5fd6c1ff1f525f2c6837eeb78d
Author: Jan Beulich <jbeulich@suse.com>
AuthorDate: Tue Mar 21 13:46:39 2023 +0100
Commit: Jan Beulich <jbeulich@suse.com>
CommitDate: Tue Mar 21 13:46:39 2023 +0100

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 78c8bad151..78d4526446 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;
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.17