unicorn/qemu
Marc Zyngier 2e8c8b5a7c
target/arm: Fix ISR_EL1 tracking when executing at EL2
The ARMv8 ARM states when executing at EL2, EL3 or Secure EL1,
ISR_EL1 shows the pending status of the physical IRQ, FIQ, or
SError interrupts.

Unfortunately, QEMU's implementation only considers the HCR_EL2
bits, and ignores the current exception level. This means a hypervisor
trying to look at its own interrupt state actually sees the guest
state, which is unexpected and breaks KVM as of Linux 5.3.

Instead, check for the running EL and return the physical bits
if not running in a virtualized context.

Backports commit 7cf95aed53c8770a338617ef40d5f37d2c197853 from qemu
2019-11-28 03:41:38 -05:00
..
accel tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs target/riscv: Initial introduction of the RISC-V target 2019-03-08 21:46:10 -05:00
docs docs/devel/memory.txt: Document _with_attrs accessors 2018-10-04 04:46:26 -04:00
fpu fpu: rename softfloat-specialize.h -> .inc.c 2019-11-18 21:12:30 -05:00
hw i386: Update new x86_apicid parsing rules with die_offset support 2019-08-08 18:22:03 -04:00
include tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
qapi qapi: Rewrite string-input-visitor's integer and list parsing 2018-12-18 04:57:25 -05:00
qobject qstring: Move qstring_from_substr()'s @end one to the right 2018-08-02 21:24:19 -04:00
qom cpu: Move icount_decr to CPUNegativeOffsetState 2019-06-13 15:34:28 -04:00
scripts decodetree: Suppress redundant declaration warnings 2019-11-18 21:21:30 -05:00
target target/arm: Fix ISR_EL1 tracking when executing at EL2 2019-11-28 03:41:38 -05:00
tcg tcg: TCGMemOp is now accelerator independent MemOp 2019-11-28 03:01:12 -05:00
util util/cacheinfo: Use uint64_t on LLP64 model to satisfy Windows ARM64 2019-05-09 17:43:27 -04:00
aarch64.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
aarch64eb.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
accel.c clean-up: removed duplicate #includes 2018-02-28 08:51:56 -05:00
arm.h Revert "target/arm: Use unallocated_encoding for aarch32" 2019-11-18 23:49:47 -05:00
armeb.h Revert "target/arm: Use unallocated_encoding for aarch32" 2019-11-18 23:49:47 -05:00
CODING_STYLE.rst docs: split the CODING_STYLE doc into distinct groups 2019-11-28 02:54:44 -05:00
configure configure: remove AUTOCONF_HOST 2019-11-18 22:19:47 -05:00
COPYING
COPYING.LIB
cpus.c Include qapi/error.h exactly where needed 2018-03-07 12:26:38 -05:00
exec.c exec.c: add a check between constants to see whether we could skip 2019-11-28 02:55:42 -05:00
gen_all_header.sh
glib_compat.c target/arm/translate: Synchronize with Qemu 2019-04-27 10:13:01 -04:00
header_gen.py target/sparc: Switch to do_transaction_failed() hook 2019-11-28 02:56:50 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE
m68k.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
Makefile Makefile: Rename targets for make recursion 2019-08-08 17:26:49 -04:00
Makefile.objs qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-09 11:35:11 -05:00
Makefile.target configure: Remove old -fno-gcse workaround for GCC 4.6.x and 4.7.[012] 2018-12-18 03:52:36 -05:00
memory.c memory: Delete memory region subregions 2019-11-28 03:03:11 -05:00
memory_ldst.inc.c exec: Fix MAP_RAM for cached access 2018-07-03 01:11:12 -04:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h target/mips: Switch to do_transaction_failed() hook 2019-11-28 02:54:53 -05:00
mips64.h target/mips: Switch to do_transaction_failed() hook 2019-11-28 02:54:53 -05:00
mips64el.h target/mips: Switch to do_transaction_failed() hook 2019-11-28 02:54:53 -05:00
mipsel.h target/mips: Switch to do_transaction_failed() hook 2019-11-28 02:54:53 -05:00
powerpc.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
qemu-timer.c timer/cpus: fix some typos and update some comments 2018-02-25 23:21:57 -05:00
riscv32.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
riscv64.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00
rules.mak build-sys: silence make by default or V=0 2018-03-06 08:58:03 -05:00
sparc.h target/sparc: Switch to do_transaction_failed() hook 2019-11-28 02:56:50 -05:00
sparc64.h target/sparc: Switch to do_transaction_failed() hook 2019-11-28 02:56:50 -05:00
unicorn_common.h unicorn_common: Fix unicorn memory functions failing 2018-09-03 10:40:14 -04:00
VERSION Open 4.2 development tree 2019-11-18 16:42:51 -05:00
vl.c Use cpu_create(type) instead of cpu_init(cpu_model) 2018-03-20 14:20:30 -04:00
vl.h
x86_64.h target/arm: Remove helper_double_saturate 2019-11-18 20:13:21 -05:00