On 1/27/23 05:07, Jean-Philippe Brucker wrote:
> Although the VM type does not affect values probed from the scratch vCPU
> at the moment, it could later. Ensure we specify the right type when
> creating the temporary VM.
>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
> ---
> Does the PA size need changing as well?
> ---
> target/arm/kvm.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/target/arm/kvm.c b/target/arm/kvm.c
> index fcddead4fe..d8655d9041 100644
> --- a/target/arm/kvm.c
> +++ b/target/arm/kvm.c
> @@ -70,6 +70,7 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
> {
> int ret = 0, kvmfd = -1, vmfd = -1, cpufd = -1;
> int max_vm_pa_size;
> + int vm_type;
>
> kvmfd = qemu_open_old("/dev/kvm", O_RDWR);
> if (kvmfd < 0) {
> @@ -79,8 +80,10 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t *cpus_to_try,
> if (max_vm_pa_size < 0) {
> max_vm_pa_size = 0;
> }
> +
> + vm_type = kvm_arm_rme_vm_type(MACHINE(qdev_get_machine()));
> do {
> - vmfd = ioctl(kvmfd, KVM_CREATE_VM, max_vm_pa_size);
> + vmfd = ioctl(kvmfd, KVM_CREATE_VM, vm_type | max_vm_pa_size);
Given the restrictions on register transfer for RME guests, this seems incorrect. We
won't be able to probe what we wanted at all.
r~