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
.github
.gitlab
.gitlab-ci.d
accel
audio
authz
backends
block
bsd-user
chardev
common-user
configs
contrib
crypto
disas
docs
dtc @ b6910be
dump
ebpf
fpu
fsdev
gdb-xml
gdbstub
hw
include
io
libdecnumber
linux-headers
linux-user
meson @ 3a9b285
migration
monitor
nbd
net
pc-bios
plugins
po
python
qapi
qga
qobject
qom
replay
roms
scripts
scsi
semihosting
softmmu
storage-daemon
stubs
subprojects
target
tcg
tests
tools
trace
ui
util
.cirrus.yml -rw-r--r-- 4.5 KB
.dir-locals.el -rw-r--r-- 75 bytes
.editorconfig -rw-r--r-- 951 bytes
.exrc -rw-r--r-- 220 bytes
.gdbinit -rw-r--r-- 326 bytes
.gitattributes -rw-r--r-- 100 bytes
.gitignore -rw-r--r-- 194 bytes
.gitlab-ci.yml -rw-r--r-- 884 bytes
.gitmodules -rw-r--r-- 2.3 KB
.gitpublish -rw-r--r-- 1.6 KB
.mailmap -rw-r--r-- 9.1 KB
.patchew.yml -rw-r--r-- 8.3 KB
.readthedocs.yml -rw-r--r-- 543 bytes
.travis.yml -rw-r--r-- 8.0 KB
COPYING -rw-r--r-- 17.6 KB
COPYING.LIB -rw-r--r-- 25.9 KB
Kconfig -rw-r--r-- 132 bytes
Kconfig.host -rw-r--r-- 616 bytes
LICENSE -rw-r--r-- 1.1 KB
MAINTAINERS -rw-r--r-- 87.4 KB
Makefile -rw-r--r-- 11.2 KB
README.rst -rw-r--r-- 5.4 KB
VERSION -rw-r--r-- 7 bytes
block.c -rw-r--r-- 239.8 KB
blockdev-nbd.c -rw-r--r-- 7.7 KB
blockdev.c -rw-r--r-- 116.3 KB
blockjob.c -rw-r--r-- 16.6 KB
configure -rwxr-xr-x 75.8 KB
cpu.c -rw-r--r-- 12.8 KB
cpus-common.c -rw-r--r-- 10.3 KB
disas.c -rw-r--r-- 10.7 KB
event-loop-base.c -rw-r--r-- 4.0 KB
gitdm.config -rw-r--r-- 1.8 KB
hmp-commands-info.hx -rw-r--r-- 21.7 KB
hmp-commands.hx -rw-r--r-- 53.2 KB
iothread.c -rw-r--r-- 11.6 KB
job-qmp.c -rw-r--r-- 4.3 KB
job.c -rw-r--r-- 32.3 KB
memory_ldst.c.inc -rw-r--r-- 15.7 KB
meson.build -rw-r--r-- 144.2 KB
meson_options.txt -rw-r--r-- 16.1 KB
module-common.c -rw-r--r-- 113 bytes
os-posix.c -rw-r--r-- 8.1 KB
os-win32.c -rw-r--r-- 2.0 KB
page-vary-common.c -rw-r--r-- 1.6 KB
page-vary.c -rw-r--r-- 1.2 KB
qemu-bridge-helper.c -rw-r--r-- 11.9 KB
qemu-edid.c -rw-r--r-- 3.7 KB
qemu-img-cmds.hx -rw-r--r-- 5.5 KB
qemu-img.c -rw-r--r-- 159.8 KB
qemu-io-cmds.c -rw-r--r-- 64.7 KB
qemu-io.c -rw-r--r-- 17.9 KB
qemu-keymap.c -rw-r--r-- 7.4 KB
qemu-nbd.c -rw-r--r-- 37.7 KB
qemu-options.hx -rw-r--r-- 237.3 KB
qemu.nsi -rw-r--r-- 6.7 KB
qemu.sasl -rw-r--r-- 1.7 KB
replication.c -rw-r--r-- 2.5 KB
trace-events -rw-r--r-- 3.8 KB
version.rc -rw-r--r-- 867 bytes

README.rst

back to top