static spinlock_t pnp_bios_lock;
+--- a/arch/x86/kvm/svm.c 2015-09-24 22:50:27.362343327 +0200
++++ b/arch/x86/kvm/svm.c 2015-09-24 22:37:54.828574312 +0200
+@@ -3776,12 +3806,6 @@
+ svm_complete_interrupts(svm);
+ }
+
+-#ifdef CONFIG_X86_64
+-#define R "r"
+-#else
+-#define R "e"
+-#endif
+-
+ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
+ {
+ struct vcpu_svm *svm = to_svm(vcpu);
+@@ -3808,13 +3832,13 @@
+ local_irq_enable();
+
+ asm volatile (
+- "push %%"R"bp; \n\t"
+- "mov %c[rbx](%[svm]), %%"R"bx \n\t"
+- "mov %c[rcx](%[svm]), %%"R"cx \n\t"
+- "mov %c[rdx](%[svm]), %%"R"dx \n\t"
+- "mov %c[rsi](%[svm]), %%"R"si \n\t"
+- "mov %c[rdi](%[svm]), %%"R"di \n\t"
+- "mov %c[rbp](%[svm]), %%"R"bp \n\t"
++ "push %%" _ASM_BP "; \n\t"
++ "mov %c[rbx](%[svm]), %%" _ASM_BX " \n\t"
++ "mov %c[rcx](%[svm]), %%" _ASM_CX " \n\t"
++ "mov %c[rdx](%[svm]), %%" _ASM_DX " \n\t"
++ "mov %c[rsi](%[svm]), %%" _ASM_SI " \n\t"
++ "mov %c[rdi](%[svm]), %%" _ASM_DI " \n\t"
++ "mov %c[rbp](%[svm]), %%" _ASM_BP " \n\t"
+ #ifdef CONFIG_X86_64
+ "mov %c[r8](%[svm]), %%r8 \n\t"
+ "mov %c[r9](%[svm]), %%r9 \n\t"
+@@ -3827,20 +3851,20 @@
+ #endif
+
+ /* Enter guest mode */
+- "push %%"R"ax \n\t"
+- "mov %c[vmcb](%[svm]), %%"R"ax \n\t"
++ "push %%" _ASM_AX " \n\t"
++ "mov %c[vmcb](%[svm]), %%" _ASM_AX " \n\t"
+ __ex(SVM_VMLOAD) "\n\t"
+ __ex(SVM_VMRUN) "\n\t"
+ __ex(SVM_VMSAVE) "\n\t"
+- "pop %%"R"ax \n\t"
++ "pop %%" _ASM_AX " \n\t"
+
+ /* Save guest registers, load host registers */
+- "mov %%"R"bx, %c[rbx](%[svm]) \n\t"
+- "mov %%"R"cx, %c[rcx](%[svm]) \n\t"
+- "mov %%"R"dx, %c[rdx](%[svm]) \n\t"
+- "mov %%"R"si, %c[rsi](%[svm]) \n\t"
+- "mov %%"R"di, %c[rdi](%[svm]) \n\t"
+- "mov %%"R"bp, %c[rbp](%[svm]) \n\t"
++ "mov %%" _ASM_BX ", %c[rbx](%[svm]) \n\t"
++ "mov %%" _ASM_CX ", %c[rcx](%[svm]) \n\t"
++ "mov %%" _ASM_DX ", %c[rdx](%[svm]) \n\t"
++ "mov %%" _ASM_SI ", %c[rsi](%[svm]) \n\t"
++ "mov %%" _ASM_DI ", %c[rdi](%[svm]) \n\t"
++ "mov %%" _ASM_BP ", %c[rbp](%[svm]) \n\t"
+ #ifdef CONFIG_X86_64
+ "mov %%r8, %c[r8](%[svm]) \n\t"
+ "mov %%r9, %c[r9](%[svm]) \n\t"
+@@ -3851,7 +3875,7 @@
+ "mov %%r14, %c[r14](%[svm]) \n\t"
+ "mov %%r15, %c[r15](%[svm]) \n\t"
+ #endif
+- "pop %%"R"bp"
++ "pop %%" _ASM_BP
+ :
+ : [svm]"a"(svm),
+ [vmcb]"i"(offsetof(struct vcpu_svm, vmcb_pa)),
+@@ -3872,9 +3896,11 @@
+ [r15]"i"(offsetof(struct vcpu_svm, vcpu.arch.regs[VCPU_REGS_R15]))
+ #endif
+ : "cc", "memory"
+- , R"bx", R"cx", R"dx", R"si", R"di"
+ #ifdef CONFIG_X86_64
++ , "rbx", "rcx", "rdx", "rsi", "rdi"
+ , "r8", "r9", "r10", "r11" , "r12", "r13", "r14", "r15"
++#else
++ , "ebx", "ecx", "edx", "esi", "edi"
+ #endif
+ );
+