xemu/accel/tcg
Pavel Dovgalyuk 5f3bdfd4fa cpu-exec: fix exception_index handling
Function cpu_handle_interrupt calls cc->cpu_exec_interrupt to process
pending hardware interrupts. Under the hood cpu_exec_interrupt uses
cpu->exception_index to pass information to the internal function which
is usually common for exception and interrupt processing.
But this value is not reset after return and may be processed again
by cpu_handle_exception. This does not happen due to overwriting
the exception_index at the end of cpu_handle_interrupt.
But this branch may also overwrite the valid exception_index in some cases.
Therefore this patch:
 1. resets exception_index just after the call to cpu_exec_interrupt
 2. prevents overwriting the meaningful value of exception_index

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20180227095140.1060.61357.stgit@pasha-VirtualBox>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
2018-03-12 16:12:50 +01:00
..
Makefile.objs tcg: Add generic vector expanders 2018-02-08 15:54:05 +00:00
atomic_template.h accel/tcg: Handle atomic accesses to notdirty memory correctly 2017-11-21 12:09:25 +00:00
cpu-exec-common.c accel/tcg/cpu-exec-common.c: Remove unnecessary include of memory-internal.h 2017-12-18 17:07:02 +03:00
cpu-exec.c cpu-exec: fix exception_index handling 2018-03-12 16:12:50 +01:00
cputlb.c accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
softmmu_template.h accel/tcg: add size paremeter in tlb_fill() 2018-01-25 16:02:24 +01:00
tcg-all.c tcg: make tcg_allowed global 2017-07-04 16:01:16 +02:00
tcg-runtime-gvec.c tcg: Add generic vector helpers with a scalar operand 2018-02-08 15:54:06 +00:00
tcg-runtime.c tcg: add cs_base and flags to -d exec output 2017-12-29 12:43:40 -08:00
tcg-runtime.h tcg: Add generic vector helpers with a scalar operand 2018-02-08 15:54:06 +00:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
translate-all.c page_unprotect(): handle calls to pages that are PAGE_WRITE 2018-01-23 14:20:53 +01:00
translate-all.h tcg: move tcg backend files into accel/tcg/ 2017-06-15 11:04:06 +02:00
translator.c tcg: convert tb->cflags reads to tb_cflags(tb) 2017-10-24 13:53:41 -07:00
user-exec-stub.c accel/tcg: move user-exec to accel/tcg/ 2017-09-17 06:52:19 -07:00
user-exec.c Drop remaining bits of ia64 host support 2018-02-05 18:09:45 +01:00