x86/entry/64/compat: Fix Xen PV SYSENTER frame setup
authorAndy Lutomirski <luto@kernel.org>
Fri, 26 Jun 2020 17:21:13 +0000 (10:21 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 1 Jul 2020 08:00:26 +0000 (10:00 +0200)
commitffae641f57476369b4d503402b37ebe489d23395
tree66ad35049b3c31cf7256e2aa29ddbb1a420d2c8d
parentd1721250f3ffed9afba3e1fb729947cec64c5a8a
x86/entry/64/compat: Fix Xen PV SYSENTER frame setup

The SYSENTER frame setup was nonsense.  It worked by accident because the
normal code into which the Xen asm jumped (entry_SYSENTER_32/compat) threw
away SP without touching the stack.  entry_SYSENTER_compat was recently
modified such that it relied on having a valid stack pointer, so now the
Xen asm needs to invoke it with a valid stack.

Fix it up like SYSCALL: use the Xen-provided frame and skip the bare
metal prologue.

Fixes: 1c3e5d3f60e2 ("x86/entry: Make entry_64_compat.S objtool clean")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lkml.kernel.org/r/947880c41ade688ff4836f665d0c9fcaa9bd1201.1593191971.git.luto@kernel.org
arch/x86/entry/entry_64_compat.S
arch/x86/xen/xen-asm_64.S