mirror_qemu/target-i386
Jincheng Miao 47575997be linux-user: Fix syscall instruction usermode emulation on X86_64
Currently syscall instruction is buggy on user mode X86_64,
the EIP is updated after do_syscall(), that is too late for
clone(). Because clone() will create a thread at the env->EIP
(the address of syscall insn), and then child thread enters
do_syscall() again, that is not expected. Sometimes it is tragic.

User mode syscall insn emulation is not used MSR, so the
action should be same to INT 0x80. INT 0x80 will update EIP in
do_interrupt(), ditto for syscall() for consistency.

Signed-off-by: Jincheng Miao <jmiao@redhat.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
2014-08-22 15:06:33 +03:00
..
Makefile.objs Makefile.target: CONFIG_NO_* variables removed 2013-10-16 18:21:00 +02:00
TODO target-i386: fix {min,max}{pd,ps,sd,ss} SSE2 instructions 2012-01-11 09:55:28 +01:00
arch_dump.c dump: rebase from host-private RAMBlock offsets to guest-physical addresses 2013-08-08 11:01:46 -04:00
arch_memory_mapping.c exec: Make ldq/ldub_*_phys input an AddressSpace 2014-02-11 22:57:00 +10:00
cc_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
cc_helper_template.h target-i386: Implement BLSR, BLSMSK, BLSI 2013-02-18 15:52:05 -08:00
cpu-qom.h target-i386: block migration and savevm if invariant tsc is exposed 2014-06-25 23:54:57 +02:00
cpu.c target-i386/cpu.c: Fix two error output indentation 2014-08-09 00:06:32 +04:00
cpu.h target-i386: Support "invariant tsc" flag 2014-06-25 23:54:57 +02:00
excp_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
fpu_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
gdbstub.c target-i386: fix segment flags for SMM and VM86 mode 2014-05-21 18:02:08 +02:00
helper.c target-i386: Allow execute from user mode when SMEP is enabled. 2014-07-15 18:43:14 +02:00
helper.h tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
int_helper.c tcg: Invert the inclusion of helper.h 2014-05-28 09:33:54 -07:00
ioport-user.c exec: move include files to include/exec/ 2012-12-19 08:31:31 +01:00
kvm-stub.c target-i386: Fix build by providing stub kvm_arch_get_supported_cpuid() 2013-11-21 17:39:11 +01:00
kvm.c target-i386: block migration and savevm if invariant tsc is exposed 2014-06-25 23:54:57 +02:00
kvm_i386.h kvm: forward INIT signals coming from the chipset 2014-05-13 13:12:40 +02:00
machine.c target-i386: block migration and savevm if invariant tsc is exposed 2014-06-25 23:54:57 +02:00
mem_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
misc_helper.c target-i386: move check_io helpers to seg_helper.c 2014-06-05 16:10:34 +02:00
ops_sse.h target-i386: Use Common ShiftRows and InvShiftRows Tables 2014-06-16 13:24:33 +02:00
ops_sse_header.h target-i386: add AES-NI instructions 2013-04-13 13:51:57 +02:00
seg_helper.c linux-user: Fix syscall instruction usermode emulation on X86_64 2014-08-22 15:06:33 +03:00
shift_helper_template.h target-i386: compute eflags outside rcl/rcr helper 2013-02-18 15:03:56 -08:00
smm_helper.c Merge remote-tracking branch 'remotes/kvm/uq/master' into staging 2014-06-05 19:16:28 +01:00
svm.h Use new macro QEMU_PACKED for packed structures 2011-09-03 10:45:59 +00:00
svm_helper.c Merge remote-tracking branch 'remotes/bonzini/softmmu-smap' into staging 2014-06-05 21:06:14 +01:00
topology.h target-i386: Inline bitops_flsl 2013-02-16 11:12:29 +00:00
translate.c trace: [tcg] Include TCG-tracing header on all targets 2014-08-12 14:26:12 +01:00