VMX: drop memory clobbers from vmread/vmwrite wrappers
authorJan Beulich <jbeulich@suse.com>
Mon, 23 Sep 2013 15:37:50 +0000 (17:37 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 23 Sep 2013 15:37:50 +0000 (17:37 +0200)
All effects are properly being described by the asm() constraints.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jun Nakajima <jun.nakajima@intel.com>
xen/include/asm-x86/hvm/vmx/vmx.h

index 0cb6a427ece7f2ff8023805a053442805ab72d05..6f6b6728dfbac234d0dbbf24997e9bc219929730 100644 (file)
@@ -336,12 +336,11 @@ static inline void __vmread(unsigned long field, unsigned long *value)
                    UNLIKELY_END_SECTION
 #ifdef HAVE_GAS_VMX
                    : "=rm" (*value)
-                   : "r" (field)
+                   : "r" (field));
 #else
                    : "=c" (*value)
-                   : "a" (field)
+                   : "a" (field));
 #endif
-                   : "memory");
 }
 
 static inline void __vmwrite(unsigned long field, unsigned long value)
@@ -358,11 +357,10 @@ static inline void __vmwrite(unsigned long field, unsigned long value)
                    UNLIKELY_END_SECTION
                    : 
 #ifdef HAVE_GAS_VMX
-                   : "r" (field) , "rm" (value)
+                   : "r" (field) , "rm" (value));
 #else
-                   : "a" (field) , "c" (value)
+                   : "a" (field) , "c" (value));
 #endif
-                   : "memory");
 }
 
 static inline bool_t __vmread_safe(unsigned long field, unsigned long *value)
@@ -379,12 +377,11 @@ static inline bool_t __vmread_safe(unsigned long field, unsigned long *value)
                    "setnbe %0"
 #ifdef HAVE_GAS_VMX
                    : "=qm" (okay), "=rm" (*value)
-                   : "r" (field)
+                   : "r" (field));
 #else
                    : "=qm" (okay), "=c" (*value)
-                   : "a" (field)
+                   : "a" (field));
 #endif
-                   : "memory");
 
     return okay;
 }