[HVM][VMX] Fix error-detection inline asm code. Zero word-sized
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 12 Jun 2006 11:01:32 +0000 (12:01 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 12 Jun 2006 11:01:32 +0000 (12:01 +0100)
register before executing SETNA instruction which updates bottom
byte.
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/include/asm-x86/hvm/vmx/vmx.h

index 444751ec6eaba9a93503fbc5e3909020cfb89653..81637d1a17cf4d7bc6204fc778c5b1ee1201f5b5 100644 (file)
@@ -243,7 +243,7 @@ static always_inline int ___vmread(
                            /* CF==1 or ZF==1 --> rc = -1 */
                            "setna %b0 ; neg %0"
                            : "=q" (rc), "=c" (ecx)
-                           : "a" (field)
+                           : "0" (0), "a" (field)
                            : "memory");
 
     switch (size) {
@@ -314,7 +314,7 @@ static inline int __vmwrite (unsigned long field, unsigned long value)
                            /* CF==1 or ZF==1 --> rc = -1 */
                            "setna %b0 ; neg %0"
                            : "=q" (rc)
-                           : "a" (field) , "c" (value)
+                           : "0" (0), "a" (field) , "c" (value)
                            : "memory");
 
     switch(field) {
@@ -367,7 +367,7 @@ static inline int __vmxon (u64 addr)
                            /* CF==1 or ZF==1 --> rc = -1 */
                            "setna %b0 ; neg %0"
                            : "=q" (rc)
-                           : "a" (&addr) 
+                           : "0" (0), "a" (&addr) 
                            : "memory");
 
     return rc;