unicorn/qemu
Pavel Dovgalyuk 36d902cd0e
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

Backports commit 5f3bdfd4fa33255542a4b6249913d9ffb11b44f9 from qemu
2018-03-17 19:33:05 -04:00
..
accel cpu-exec: fix exception_index handling 2018-03-17 19:33:05 -04:00
crypto
default-configs
docs
fpu softfloat: fix crash on int conversion of SNaN 2018-03-09 11:40:17 -05:00
hw target/arm: Make 'any' CPU just an alias for 'max' 2018-03-12 10:11:49 -04:00
include membarrier: add --enable-membarrier 2018-03-17 19:30:43 -04:00
qapi qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
qobject qdict: Introduce qdict_rename_keys() 2018-03-12 10:11:48 -04:00
qom qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
scripts qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
target i386: Add support to get/set/migrate Intel Processor Trace feature 2018-03-17 19:11:21 -04:00
tcg tcg: Allow 6 arguments to TCG helpers 2018-03-17 18:29:04 -04:00
util membarrier: add --enable-membarrier 2018-03-17 19:30:43 -04:00
aarch64.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
aarch64eb.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
armeb.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
CODING_STYLE
configure membarrier: add --enable-membarrier 2018-03-17 19:30:43 -04:00
COPYING
COPYING.LIB
cpus.c Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
exec.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
gen_all_header.sh
glib_compat.c memory: Share FlatView's and dispatch trees between address spaces 2018-03-11 22:05:44 -04:00
HACKING
header_gen.py qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE
m68k.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
Makefile qapi: Don't create useless directory qapi-generated 2018-03-09 11:36:49 -05:00
Makefile.objs qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
Makefile.target tcg: move tcg backend files into accel/tcg/ 2018-03-13 11:48:15 -04:00
memory.c memory: Share special empty FlatView 2018-03-11 22:34:28 -04:00
memory_ldst.inc.c exec: Drop unnecessary code for unicorn 2018-03-12 10:11:46 -04:00
memory_mapping.c
mips.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
mips64.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
mips64el.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
mipsel.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
powerpc.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
rules.mak build-sys: silence make by default or V=0 2018-03-06 08:58:03 -05:00
sparc.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
sparc64.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00
unicorn_common.h memory: Share special empty FlatView 2018-03-11 22:34:28 -04:00
VERSION
vl.c machine: Eliminate QEMUMachine and qemu_register_machine() 2018-03-11 15:22:25 -04:00
vl.h
x86_64.h qom: introduce object_class_get_list_sorted 2018-03-17 19:16:25 -04:00