On 8/16/21 3:58 PM, Peter Maydell wrote: > KVM cannot support multiple address spaces per CPU; if you try to > create more than one then cpu_address_space_init() will assert. > > In the Arm CPU realize function, detect the configurations which > would cause us to need more than one AS, and cleanly fail the > realize rather than blundering on into the assertion. This > turns this: > $ qemu-system-aarch64 -enable-kvm -display none -cpu max -machine raspi3b > qemu-system-aarch64: ../../softmmu/physmem.c:747: cpu_address_space_init: > Assertion `asidx == 0 || !kvm_enabled()' failed. > Aborted > > into: > $ qemu-system-aarch64 -enable-kvm -display none -machine raspi3b > qemu-system-aarch64: Cannot enable KVM when guest CPU has EL3 enabled > > and this: > $ qemu-system-aarch64 -enable-kvm -display none -machine mps3-an524 > qemu-system-aarch64: ../../softmmu/physmem.c:747: cpu_address_space_init: > Assertion `asidx == 0 || !kvm_enabled()' failed. > Aborted > > into: > $ qemu-system-aarch64 -enable-kvm -display none -machine mps3-an524 > qemu-system-aarch64: Cannot enable KVM when using an M-profile guest CPU > > Fixes: https://gitlab.com/qemu-project/qemu/-/issues/528 > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > target/arm/cpu.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+)
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org>