All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] VT-d: prevent dom0 to use VT-d HW
@ 2009-09-08  2:24 Han, Weidong
  2009-09-08 11:43 ` Christian Tramnitz
  2009-09-09 22:32 ` Jeremy Fitzhardinge
  0 siblings, 2 replies; 8+ messages in thread
From: Han, Weidong @ 2009-09-08  2:24 UTC (permalink / raw)
  To: xen-devel@lists.xensource.com
  Cc: Kay, Allen M, 'Keir.Fraser@eu.citrix.com'

[-- Attachment #1: Type: text/plain, Size: 566 bytes --]

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@intel.com>

[-- Attachment #2: disable-dom0-vtd.patch --]
[-- Type: application/octet-stream, Size: 1244 bytes --]

diff -r 18cd7c378c48 xen/drivers/passthrough/vtd/dmar.c
--- a/xen/drivers/passthrough/vtd/dmar.c	Mon Sep 07 14:26:06 2009 +0100
+++ b/xen/drivers/passthrough/vtd/dmar.c	Tue Sep 08 10:05:44 2009 +0800
@@ -517,6 +517,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");
@@ -563,9 +569,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 )
@@ -579,6 +582,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;
 }
 
@@ -599,9 +605,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;

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-09-09 22:41 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-08  2:24 [PATCH] VT-d: prevent dom0 to use VT-d HW Han, Weidong
2009-09-08 11:43 ` Christian Tramnitz
2009-09-08 11:51   ` Teo En Ming (Zhang Enming)
2009-09-08 14:07   ` Ian Jackson
2009-09-08 14:14     ` Keir Fraser
2009-09-09 22:32 ` Jeremy Fitzhardinge
2009-09-09 22:35   ` Kay, Allen M
2009-09-09 22:41     ` Jeremy Fitzhardinge

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.