On Mon, May 25, 2015 at 16:59:08 +0200, Andrea Bolognani wrote: > The command is only defined in QEMU for TARGET_I386, so issuing it on > any other architecture can't possibly work. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1211938 > --- > src/qemu/qemu_driver.c | 20 +++++++++++++------- > 1 file changed, 13 insertions(+), 7 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index aa0acde..743ca6e 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c > @@ -18945,7 +18945,10 @@ qemuDomainSetTime(virDomainPtr dom, > goto endjob; > } > > - if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION)) { > + /* The rtc-reset-reinjection QMP command is only available on x86 */
Since we properly track support for this command via the capabilities
and qemu does not expose it:
> + if (ARCH_IS_X86(vm->def->os.arch) &&
> + !virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION))
> + {
> virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
> _("cannot set time: qemu doesn't support "
> "rtc-reset-reinjection command"));
I'd simply remove this error message since it is semantically wrong once
PPC does not require to reset the RTC reinjection.
> @@ -18968,13 +18971,16 @@ qemuDomainSetTime(virDomainPtr dom,
> goto endjob;
> }
>
> - qemuDomainObjEnterMonitor(driver, vm);
> - rv = qemuMonitorRTCResetReinjection(priv->mon);
> - if (qemuDomainObjExitMonitor(driver, vm) < 0)
> - goto endjob;
> + /* The rtc-reset-reinjection QMP command is only available on x86 */
> + if (ARCH_IS_X86(vm->def->os.arch)) {
> + qemuDomainObjEnterMonitor(driver, vm);
> + rv = qemuMonitorRTCResetReinjection(priv->mon);
And just conditionally call this when the
QEMU_CAPS_RTC_RESET_REINJECTION is present and not in an architecture
specific way.
By this you get rid of the arch specific hackery.
> + if (qemuDomainObjExitMonitor(driver, vm) < 0)
> + goto endjob;
>
> - if (rv < 0)
> - goto endjob;
> + if (rv < 0)
> + goto endjob;
> + }
>
> ret = 0;
>
Peter
signature.asc
Description: Digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
