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-3.4-testing] VT-d: prevent dom0 to use VT-d HW

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-3.4-testing] VT-d: prevent dom0 to use VT-d HW
From: "Xen patchbot-3.4-testing" <patchbot-3.4-testing@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 01 Oct 2009 08:25:15 -0700
Delivery-date: Thu, 01 Oct 2009 08:25:38 -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 Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1254409055 -3600
# Node ID 7eaa798200f679148fbd9d74b3fd958b5f8b7079
# Parent  a5251bffea427aad74592065dc7fff99fe74f5ce
VT-d: prevent dom0 to use VT-d HW

pv-ops dom0 contains Linux upstream VT-d driver, and will go to enable
it when VT-d is set in kernel config file. It should not enable VT-d
in dom0.

Currently it already zaps ACPI DMAR signature to prevents dom0 using
VT-d HW when VT-d is enabled for Xen. But when VT-d is not enabled for
Xen, and VT-d is set in pv-ops kernel config file, pv-ops dom0 will go
to enable it. This will results in pv-ops dom0 booting failure. This
patch prevents dom0 to use VT-d HW whether VT-d is enabled or disabled
for Xen.

Signed-off-by: Weidong Han <weidong.han@xxxxxxxxx>
xen-unstable changeset:   20181:1c406a505fc0
xen-unstable date:        Tue Sep 08 15:10:31 2009 +0100
---
 xen/drivers/passthrough/vtd/dmar.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff -r a5251bffea42 -r 7eaa798200f6 xen/drivers/passthrough/vtd/dmar.c
--- a/xen/drivers/passthrough/vtd/dmar.c        Thu Oct 01 15:57:05 2009 +0100
+++ b/xen/drivers/passthrough/vtd/dmar.c        Thu Oct 01 15:57:35 2009 +0100
@@ -471,6 +471,12 @@ static int __init acpi_parse_dmar(struct
 
     dmar = (struct acpi_table_dmar *)table;
 
+    if ( !iommu_enabled )
+    {
+        ret = -EINVAL;
+        goto out;
+    }
+
     if ( !dmar->width )
     {
         dprintk(XENLOG_WARNING VTDPREFIX, "Zero: Invalid DMAR width\n");
@@ -513,9 +519,6 @@ static int __init acpi_parse_dmar(struct
         entry_header = ((void *)entry_header + entry_header->length);
     }
 
-    /* Zap APCI DMAR signature to prevent dom0 using vt-d HW. */
-    dmar->header.signature[0] = '\0';
-
     if ( ret )
     {
         if ( force_iommu )
@@ -529,6 +532,9 @@ static int __init acpi_parse_dmar(struct
         }
     }
 
+out:
+    /* Zap ACPI DMAR signature to prevent dom0 using vt-d HW. */
+    dmar->header.signature[0] = '\0';
     return ret;
 }
 
@@ -549,9 +555,6 @@ int acpi_dmar_init(void)
     if ( force_iommu )
         iommu_enabled = 1;
 
-    if ( !iommu_enabled )
-        goto fail;
-
     rc = parse_dmar_table(acpi_parse_dmar);
     if ( rc )
         goto fail;

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-3.4-testing] VT-d: prevent dom0 to use VT-d HW, Xen patchbot-3.4-testing <=