xen: use iret for return from 64b kernel to 32b usermode
commitebe5f3b81f1d3677882b5b1c382321096c7d1851
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Wed, 25 Nov 2009 21:15:38 +0000 (25 13:15 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 18 Dec 2009 22:04:55 +0000 (18 14:04 -0800)
tree75987c006c9ebbf94dcf5fc74ba07ac72bb52a60
parent98a0174b42a81685c342a230a8a8755a9df9bcd6
xen: use iret for return from 64b kernel to 32b usermode

commit 6aaf5d633bb6cead81b396d861d7bae4b9a0ba7e upstream.

If Xen wants to return to a 32b usermode with sysret it must use the
right form.  When using VCGF_in_syscall to trigger this, it looks at
the code segment and does a 32b sysret if it is FLAT_USER_CS32.
However, this is different from __USER32_CS, so it fails to return
properly if we use the normal Linux segment.

So avoid the whole mess by dropping VCGF_in_syscall and simply use
plain iret to return to usermode.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/xen/xen-asm_64.S