Message ID | 20130223131856.GA682@onny (mailing list archive) |
---|---|
State | RFC, archived |
Headers | show |
On 02/23/2013 05:18 AM, Jonas Heinrich wrote: > Hi, > thank you for your replay and the effort you invest in helping me out > with this problem. > Today, I further debuged the problem and reverted this part of your commit > (without understanding the actual code): > Hi, that commit is indeed buggy, but it has already been fixed; commit 1396adc3c2bdc556d4cdd1cf107aa0b6d59fbb1e contains the fix. So to bisect anything between 73201dbec64aebf6b0dca855b523f437972dc7bb and 1396adc3c2bdc556d4cdd1cf107aa0b6d59fbb1e in a meaningful way you will have to apply 1396adc3c2bdc556d4cdd1cf107aa0b6d59fbb1e on top. If 73201dbec64aebf6b0dca855b523f437972dc7b with 1396adc3c2bdc556d4cdd1cf107aa0b6d59fbb1e on top fails whereas the previous one does, then that is very interesting and something we can work with. -hpa
diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S index 8905166..e56479e 100644 --- a/arch/x86/realmode/rm/wakeup_asm.S +++ b/arch/x86/realmode/rm/wakeup_asm.S @@ -110,15 +119,15 @@ ENTRY(wakeup_start) movl pmode_cr3, %eax movl %eax, %cr3 - movl pmode_cr4, %ecx - jecxz 1f - movl %ecx, %cr4 + btl $WAKEUP_BEHAVIOR_RESTORE_CR4, %edi + jz 1f + movl pmode_cr4, %eax + movl %eax, %cr4 1: + btl $WAKEUP_BEHAVIOR_RESTORE_EFER, %edi + jz 1f movl pmode_efer, %eax movl pmode_efer + 4, %edx - movl %eax, %ecx - orl %edx, %ecx - jz 1f movl $MSR_EFER, %ecx wrmsr 1: