[libvirt PATCH v2 4/8] qemu: Validate configuration for the armvtimer timer

Ján Tomko jtomko at redhat.com
Thu Feb 13 13:28:52 UTC 2020


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 at redhat.com>
>---
> 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 at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20200213/c9be4912/attachment-0001.sig>


More information about the libvir-list mailing list