On 07/21/2018 05:19 PM, Boris Ostrovsky wrote:
On 07/21/2018 03:49 PM, M. Vefa Bicakci wrote:
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S index c7449f377a77..96e8ff34129e 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S @@ -1129,7 +1129,7 @@ ENTRY(xen_failsafe_callback) addq $0x30, %rsp UNWIND_HINT_IRET_REGS pushq $-1 /* orig_ax = -1 => not a system call */
- PUSH_AND_CLEAR_REGS
- PUSH_AND_CLEAR_REGS clear_rbx=0
Do we need this at all? We are returning from the hypervisor here.
-boris
ENCODE_FRAME_POINTER jmp error_exit END(xen_failsafe_callback)
Hello Boris,
If you are referring to the PUSH_AND_CLEAR_REGS macro itself, I am not sure; however, not clearing the RBX register seemed to resolve the issues mentioned in the commit message for me. Given Andy's comment though, I believe that the approach in this patch may not be correct.
Thank you,
Vefa