On Fri, Feb 07, 2020 at 03:27:04PM +0100, Andrea Bolognani wrote:
Its use is limited to certain guest types, and it only supports a subset of all possible tick policies. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- src/qemu/qemu_domain.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 68348464a8..8036886508 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -5430,6 +5430,39 @@ qemuDomainDefValidateClockTimers(const virDomainDef *def, break; case VIR_DOMAIN_TIMER_NAME_ARMVTIMER:
Missing check for present == 0.
+ if (def->virtType != VIR_DOMAIN_VIRT_KVM || + !qemuDomainIsARMVirt(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Configuring the '%s' timer is not supported " + "for virtType=%s arch=%s machine=%s guests"), + virDomainTimerNameTypeToString(timer->name), + virDomainVirtTypeToString(def->virtType), + virArchToString(def->os.arch), + def->os.machine); + return -1; + } + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_KVM_NO_ADJVTIME)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Configuring the '%s' timer is not supported " + "with this QEMU binary"), + virDomainTimerNameTypeToString(timer->name)); + return -1; + } + + switch (timer->tickpolicy) { + case -1: + case VIR_DOMAIN_TIMER_TICKPOLICY_DELAY: + case VIR_DOMAIN_TIMER_TICKPOLICY_DISCARD: + break; + case VIR_DOMAIN_TIMER_TICKPOLICY_CATCHUP: + case VIR_DOMAIN_TIMER_TICKPOLICY_MERGE: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("The '%s' timer does not support " + "tickpolicy '%s'"),
Please join the last two lines.
+ virDomainTimerNameTypeToString(timer->name), + virDomainTimerTickpolicyTypeToString(timer->tickpolicy)); + return -1;
Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx> Jano
Attachment:
signature.asc
Description: PGP signature