All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] svm: use msr safe for erratum 383
@ 2010-06-11 12:33 Christoph Egger
  0 siblings, 0 replies; only message in thread
From: Christoph Egger @ 2010-06-11 12:33 UTC (permalink / raw)
  To: xen-devel

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


Hi!

Attached patch makes erratum 383 use msr safe variants
to work on top of KVM.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>

P.S.: Keir: Please apply this patch to Xen-4.0-testing, too.

-- 
---to satisfy European Law for business letters:
Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach b. Muenchen
Geschaeftsfuehrer: Andrew Bowd, Thomas M. McCoy, Giuliano Meroni
Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632

[-- Attachment #2: xen_msr_svm.diff --]
[-- Type: text/x-diff, Size: 772 bytes --]

diff -r 125b3493dac9 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c	Fri Jun 11 11:37:22 2010 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c	Fri Jun 11 14:31:40 2010 +0200
@@ -849,10 +849,14 @@ static void svm_init_erratum_383(struct 
     if ( c->x86 != 0x10 )
         return;
 
-    rdmsrl(MSR_AMD64_DC_CFG, msr_content);
-    wrmsrl(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47));
-
-    amd_erratum383_found = 1;
+    /* use safe methods to be compatible with nested virtualization */
+    if (rdmsr_safe(MSR_AMD64_DC_CFG, msr_content) == 0 &&
+        wrmsr_safe(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47)) == 0)
+    {
+        amd_erratum383_found = 1;
+    } else {
+        printk("Failed to enable erratum 383\n");
+    }
 }
 
 static int svm_cpu_up(void)

[-- 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] only message in thread

only message in thread, other threads:[~2010-06-11 12:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-11 12:33 [PATCH] svm: use msr safe for erratum 383 Christoph Egger

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.