KVM: VMX: Return 0 from a failed VMREAD
authorAvi Kivity <avi@redhat.com>
Thu, 2 Dec 2010 15:55:23 +0000 (17:55 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 12 Jan 2011 09:30:20 +0000 (11:30 +0200)
If we execute VMREAD during reboot we'll just skip over it.  Instead of
returning garbage, return 0, which has a much smaller chance of confusing
the code.  Otherwise we risk a flood of debug printk()s which block the
reboot process if a serial console or netconsole is enabled.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/vmx.c

index ab05ff6..f3693ca 100644 (file)
@@ -565,10 +565,10 @@ static inline void ept_sync_individual_addr(u64 eptp, gpa_t gpa)
 
 static unsigned long vmcs_readl(unsigned long field)
 {
-       unsigned long value;
+       unsigned long value = 0;
 
        asm volatile (__ex(ASM_VMX_VMREAD_RDX_RAX)
-                     : "=a"(value) : "d"(field) : "cc");
+                     : "+a"(value) : "d"(field) : "cc");
        return value;
 }