mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
qemu: Limit rtc-reset-reinjection requirement to x86 only.
The QMP command, like the interrupt reinjection logic it's connected to, is only implemented in QEMU when TARGET_I386 is defined, so checking for its availability on any other architecture is pointless. On the other hand, when we're on x86, we shouldn still make sure that rtc-reset-reinjection is available and refuse to set the time otherwise. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1211938
This commit is contained in:
parent
7d0481cb93
commit
ceab3979de
@ -18946,7 +18946,12 @@ qemuDomainSetTime(virDomainPtr dom,
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION)) {
|
||||
/* On x86, the rtc-reset-reinjection QMP command must be called after
|
||||
* setting the time to avoid trouble down the line. If the command is
|
||||
* not available, don't set the time at all and report an error */
|
||||
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"));
|
||||
@ -18969,13 +18974,16 @@ qemuDomainSetTime(virDomainPtr dom,
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rv = qemuMonitorRTCResetReinjection(priv->mon);
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||
goto endjob;
|
||||
/* Don't try to call rtc-reset-reinjection if it's not available */
|
||||
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_RTC_RESET_REINJECTION)) {
|
||||
qemuDomainObjEnterMonitor(driver, vm);
|
||||
rv = qemuMonitorRTCResetReinjection(priv->mon);
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||
goto endjob;
|
||||
|
||||
if (rv < 0)
|
||||
goto endjob;
|
||||
if (rv < 0)
|
||||
goto endjob;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user