--- a/arch/x86/realmode/rm/wakeup_asm.S.org 2013-05-02 17:20:25.266667541 +0200 +++ b/arch/x86/realmode/rm/wakeup_asm.S 2013-05-02 19:56:58.083334207 +0200 @@ -112,13 +112,16 @@ btl $WAKEUP_BEHAVIOR_RESTORE_CR4, %edi jnc 1f - movl pmode_cr4, %eax - movl %eax, %cr4 + movl pmode_cr4, %ecx + movl %ecx, %cr4 1: btl $WAKEUP_BEHAVIOR_RESTORE_EFER, %edi jnc 1f movl pmode_efer, %eax movl pmode_efer + 4, %edx + movl %eax, %ecx + orl %edx, %ecx + jz 1f movl $MSR_EFER, %ecx wrmsr 1: