Revision 21be74a9a59d1e4954ebb59dcbee0fda0b19de00 authored by Thomas Huth on 01 December 2022, 18:44:43 UTC, committed by Thomas Huth on 03 December 2022, 21:04:40 UTC
The SET ADDRESS SPACE CONTROL FAST instruction is not privileged, it can be
used from problem space, too. Just the switching to the home address space
is privileged and should still generate a privilege exception. This bug is
e.g. causing programs like Java that use the "getcpu" vdso kernel function
to crash (see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=990417#26 ).

While we're at it, also check if DAT is not enabled. In that case the
instruction is supposed to generate a special operation exception.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/655
Message-Id: <20221201184443.136355-1-thuth@redhat.com>
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
1 parent 0f0a9e4
History
File Mode Size
block-dirty-bitmap.c -rw-r--r-- 38.0 KB
block.c -rw-r--r-- 29.0 KB
block.h -rw-r--r-- 993 bytes
channel-block.c -rw-r--r-- 5.0 KB
channel-block.h -rw-r--r-- 1.5 KB
channel.c -rw-r--r-- 2.6 KB
channel.h -rw-r--r-- 761 bytes
colo-failover.c -rw-r--r-- 2.2 KB
colo.c -rw-r--r-- 25.5 KB
dirtyrate.c -rw-r--r-- 24.2 KB
dirtyrate.h -rw-r--r-- 2.5 KB
exec.c -rw-r--r-- 2.2 KB
exec.h -rw-r--r-- 817 bytes
fd.c -rw-r--r-- 2.0 KB
fd.h -rw-r--r-- 699 bytes
global_state.c -rw-r--r-- 3.7 KB
meson.build -rw-r--r-- 790 bytes
migration.c -rw-r--r-- 140.8 KB
migration.h -rw-r--r-- 16.3 KB
multifd-zlib.c -rw-r--r-- 8.5 KB
multifd-zstd.c -rw-r--r-- 8.2 KB
multifd.c -rw-r--r-- 36.5 KB
multifd.h -rw-r--r-- 5.8 KB
page_cache.c -rw-r--r-- 4.2 KB
page_cache.h -rw-r--r-- 1.9 KB
postcopy-ram.c -rw-r--r-- 52.9 KB
postcopy-ram.h -rw-r--r-- 6.6 KB
qemu-file.c -rw-r--r-- 23.1 KB
qemu-file.h -rw-r--r-- 6.1 KB
ram.c -rw-r--r-- 141.9 KB
ram.h -rw-r--r-- 3.7 KB
rdma.c -rw-r--r-- 127.7 KB
rdma.h -rw-r--r-- 649 bytes
savevm.c -rw-r--r-- 96.0 KB
savevm.h -rw-r--r-- 2.8 KB
socket.c -rw-r--r-- 6.3 KB
socket.h -rw-r--r-- 927 bytes
target.c -rw-r--r-- 601 bytes
tls.c -rw-r--r-- 5.2 KB
tls.h -rw-r--r-- 1.6 KB
trace-events -rw-r--r-- 22.7 KB
trace.h -rw-r--r-- 35 bytes
vmstate-types.c -rw-r--r-- 22.3 KB
vmstate.c -rw-r--r-- 16.9 KB
xbzrle.c -rw-r--r-- 4.1 KB
xbzrle.h -rw-r--r-- 517 bytes
yank_functions.c -rw-r--r-- 1.7 KB
yank_functions.h -rw-r--r-- 621 bytes

back to top