qemu/include/exec
Ilya Leoshkevich f025692c99 accel/tcg: Clear PAGE_WRITE before translation
translate_insn() implementations fetch instruction bytes piecemeal,
which can cause qemu-user to generate inconsistent translations if
another thread modifies them concurrently [1].

Fix by making pages containing translated instruction non-writable
right before loading instruction bytes from them.

[1] https://lists.nongnu.org/archive/html/qemu-devel/2021-08/msg00644.html

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20210805204835.158918-1-iii@linux.ibm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2021-09-14 12:00:20 -07:00
..
user nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
address-spaces.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
confidential-guest-support.h confidential guest support: Introduce cgs "ready" flag 2021-02-08 16:57:38 +11:00
cpu_ldst.h exec: Rename guest_{addr,range}_valid to *_untagged 2021-02-16 11:04:53 +00:00
cpu-all.h exec: Fix overlap of PAGE_ANON and PAGE_TARGET_1 2021-04-12 11:06:24 +01:00
cpu-common.h memory: Introduce RAM_NORESERVE and wire it up in qemu_ram_mmap() 2021-06-15 20:27:38 +02:00
cpu-defs.h exec/cpu-defs: Remove TCG backends dependency 2021-02-05 10:24:14 -10:00
cputlb.h overall/alpha tcg cpus|hppa: Fix Lesser GPL version number 2020-11-15 16:43:54 +01:00
exec-all.h accel/tcg: Record singlestep_enabled in tb->cflags 2021-07-21 07:47:05 -10:00
gdbstub.h gdbstub: Remove unused gdb_get_float32() and gdb_get_float64() 2021-02-15 09:38:47 +00:00
gen-icount.h tcg: Drop gen_io_end() 2021-09-08 11:09:45 +01:00
helper-gen.h exec: Remove accel/tcg/ from include paths 2021-05-01 11:44:13 -07:00
helper-head.h tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode 2021-06-19 08:51:11 -07:00
helper-proto.h exec: Remove accel/tcg/ from include paths 2021-05-01 11:44:13 -07:00
helper-tcg.h tcg: Combine dh_is_64bit and dh_is_signed to dh_typecode 2021-06-19 08:51:11 -07:00
hwaddr.h move MemMapEntry 2020-09-30 11:29:56 +02:00
ioport.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
log.h tcg: Introduce tcg_splitwx_to_{rx,rw} 2021-01-07 05:09:41 -10:00
memattrs.h cputlb: Byte swap memory transaction attribute 2019-09-03 08:30:39 -07:00
memop.h cputlb: Replace size and endian operands for MemOp 2019-09-03 08:30:39 -07:00
memory_ldst_cached.h.inc exec/memory_ldst_cached: Use correct type size 2021-05-26 08:35:51 -07:00
memory_ldst_phys.h.inc exec/memory_ldst_phys: Use correct type sizes 2021-05-26 08:35:51 -07:00
memory_ldst.h.inc exec/memory_ldst: Use correct type sizes 2021-05-26 08:35:51 -07:00
memory-internal.h cputlb: Merge and move memory_notdirty_write_{prepare,complete} 2019-09-25 10:44:29 -07:00
memory.h softmmu/physmem: Extend ram_block_discard_(require|disable) by two discard types 2021-07-08 15:54:45 -04:00
page-vary.h exec: Build page-vary-common.c with -fno-lto 2021-03-23 19:36:47 -06:00
plugin-gen.h accel/tcg: allow plugin instrumentation to be disable via cflags 2021-02-18 08:19:23 +00:00
poison.h configure: Poison all current target-specific #defines 2021-05-14 12:32:17 +02:00
ram_addr.h memory: Introduce RAM_NORESERVE and wire it up in qemu_ram_mmap() 2021-06-15 20:27:38 +02:00
ramblock.h migration/ram: Handle RAM block resizes during postcopy 2021-05-13 18:21:14 +01:00
ramlist.h numa: Teach ram block notifiers about resizeable ram blocks 2021-05-13 18:21:13 +01:00
softmmu-semi.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
target_page.h migration: Make savevm.c target independent 2017-05-18 19:21:00 +02:00
translate-all.h accel/tcg: Clear PAGE_WRITE before translation 2021-09-14 12:00:20 -07:00
translator.h accel/tcg: Clear PAGE_WRITE before translation 2021-09-14 12:00:20 -07:00