Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 13 Nov 2015 15:26:04 -0800 | Subject | Re: [PATCH] xen/x86: Adjust stack pointer in xen_sysexit |
| |
On Fri, Nov 13, 2015 at 3:18 PM, Boris Ostrovsky <boris.ostrovsky@oracle.com> wrote: > After 32-bit syscall rewrite, and specifically after commit 5f310f739b4c > ("x86/entry/32: Re-implement SYSENTER using the new C path"), the stack > frame that is passed to xen_sysexit is no longer a "standard" one (i.e. > it's not pt_regs). > > We need to adjust it so that subsequent xen_iret can use it.
I'm wondering if this should be more straightforward:
movq %rsp, %rdi call do_fast_syscall_32 testl %eax, %eax jz .Lsyscall_32_done
/* Opportunistic SYSRET */ sysret32_from_system_call: XEN_DO_SYSRET32
where XEN_DO_SYSRET32 is a simple pv op that, on Xen, jumps to a variant of Xen's iret path that knows that the fast path is okay.
--Andy
| |