WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-4.1-testing] VT-d: don't reject valid DMAR/ATSR tab

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-4.1-testing] VT-d: don't reject valid DMAR/ATSR tables on systems with multiple PCI segments
From: Xen patchbot-4.1-testing <patchbot@xxxxxxx>
Date: Wed, 17 Aug 2011 06:00:23 +0100
Delivery-date: Tue, 16 Aug 2011 22:02:49 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxxxx>
# Date 1313504226 -3600
# Node ID d52e686e0e2f0cde9a53b83163888ade94376376
# Parent  c8987be040d03acf69b068379ba063c446ce97ac
VT-d: don't reject valid DMAR/ATSR tables on systems with multiple PCI segments

On multi-PCI-segment systems, each segment has to be expected to have
an include-all DRHD and an all-ports ATSR, so the firmware consistency
check incorrectly rejects valid configurations there (which is
particularly problematic when the firmware also pre-enabled x2apic
mode, as the system will panic in that case due to being unable to
enable interrupt remapping). Thus constrain the check to just segment
0 for now; once full multi-segment support is there (which I'm working
on), it can be revisited whether we'd want to track this per segment,
or whether we trust the firmware of such large systems.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
xen-unstable changeset:   23763:8f647d409196
xen-unstable date:        Sat Aug 13 10:12:49 2011 +0100
---


diff -r c8987be040d0 -r d52e686e0e2f xen/drivers/passthrough/vtd/dmar.c
--- a/xen/drivers/passthrough/vtd/dmar.c        Tue Aug 16 15:14:19 2011 +0100
+++ b/xen/drivers/passthrough/vtd/dmar.c        Tue Aug 16 15:17:06 2011 +0100
@@ -426,13 +426,14 @@
         if ( iommu_verbose )
             dprintk(VTDPREFIX, "  flags: INCLUDE_ALL\n");
         /* Only allow one INCLUDE_ALL */
-        if ( include_all )
+        if ( drhd->segment == 0 && include_all )
         {
             dprintk(XENLOG_WARNING VTDPREFIX,
                     "Only one INCLUDE_ALL device scope is allowed\n");
             ret = -EINVAL;
         }
-        include_all = 1;
+        if ( drhd->segment == 0 )
+            include_all = 1;
     }
 
     if ( ret )
@@ -632,13 +633,14 @@
         if ( iommu_verbose )
             dprintk(VTDPREFIX, "  flags: ALL_PORTS\n");
         /* Only allow one ALL_PORTS */
-        if ( all_ports )
+        if ( atsr->segment == 0 && all_ports )
         {
             dprintk(XENLOG_WARNING VTDPREFIX,
                     "Only one ALL_PORTS device scope is allowed\n");
             ret = -EINVAL;
         }
-        all_ports = 1;
+        if ( atsr->segment == 0 )
+            all_ports = 1;
     }
 
     if ( ret )

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-4.1-testing] VT-d: don't reject valid DMAR/ATSR tables on systems with multiple PCI segments, Xen patchbot-4 . 1-testing <=