accel/kvm: Use negative KVM type for error propagation

On MIPS, kvm_arch_get_default_type() returns a negative value when an
error occurred so handle the case. Also, let other machines return
negative values when errors occur and declare returning a negative
value as the correct way to propagate an error that happened when
determining KVM type.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-id: 20230727073134.134102-5-akihiko.odaki@daynix.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Akihiko Odaki 2023-08-22 17:31:03 +01:00 committed by Peter Maydell
parent 875b3eb88f
commit bc3e41a0e8
3 changed files with 7 additions and 2 deletions

View File

@ -2527,6 +2527,11 @@ static int kvm_init(MachineState *ms)
type = kvm_arch_get_default_type(ms); type = kvm_arch_get_default_type(ms);
} }
if (type < 0) {
ret = -EINVAL;
goto err;
}
do { do {
ret = kvm_ioctl(s, KVM_CREATE_VM, type); ret = kvm_ioctl(s, KVM_CREATE_VM, type);
} while (ret == -EINTR); } while (ret == -EINTR);

View File

@ -2913,7 +2913,7 @@ static int virt_kvm_type(MachineState *ms, const char *type_str)
"require an IPA range (%d bits) larger than " "require an IPA range (%d bits) larger than "
"the one supported by the host (%d bits)", "the one supported by the host (%d bits)",
requested_pa_size, max_vm_pa_size); requested_pa_size, max_vm_pa_size);
exit(1); return -1;
} }
/* /*
* We return the requested PA log size, unless KVM only supports * We return the requested PA log size, unless KVM only supports

View File

@ -3105,7 +3105,7 @@ static int spapr_kvm_type(MachineState *machine, const char *vm_type)
} }
error_report("Unknown kvm-type specified '%s'", vm_type); error_report("Unknown kvm-type specified '%s'", vm_type);
exit(1); return -1;
} }
/* /*