[libvirt] [PATCH V2] Fix bug of attaching redirdev device
Osier Yang
osier at yunify.com
Thu Feb 25 09:28:37 UTC 2016
On 2016年02月25日 16:18, Michal Privoznik wrote:
> On 22.02.2016 18:41, Michal Privoznik wrote:
>> On 22.02.2016 17:44, Osier Yang wrote:
>>> RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1298070
>>>
>>> The corresponding chardev must be attached first, otherwise the
>>> the qemu command line won't be complete (missing the host part),
>>> ---
>>> src/qemu/qemu_hotplug.c | 15 ++++++++++++++-
>>> 1 file changed, 14 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
>>> index ee305e7..40cead7 100644
>>> --- a/src/qemu/qemu_hotplug.c
>>> +++ b/src/qemu/qemu_hotplug.c
>>> @@ -1381,6 +1381,7 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
>>> int ret;
>>> qemuDomainObjPrivatePtr priv = vm->privateData;
>>> virDomainDefPtr def = vm->def;
>>> + char *charAlias = NULL;
>>> char *devstr = NULL;
>>>
>>> if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE)) {
>>> @@ -1391,6 +1392,10 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
>>>
>>> if (qemuAssignDeviceRedirdevAlias(vm->def, redirdev, -1) < 0)
>>> goto error;
>>> +
>>> + if (virAsprintf(&charAlias, "char%s", redirdev->info.alias) < 0)
>>> + goto error;
>>> +
>>> if (!(devstr = qemuBuildRedirdevDevStr(def, redirdev, priv->qemuCaps)))
>>> goto error;
>>>
>>> @@ -1398,6 +1403,14 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
>>> goto error;
>>>
>>> qemuDomainObjEnterMonitor(driver, vm);
>>> + if (qemuMonitorAttachCharDev(priv->mon,
>>> + charAlias,
>>> + &(redirdev->source.chr)) < 0) {
>>> + ignore_value(qemuDomainObjExitMonitor(driver, vm));
>>> + goto error;
>>> + }
>>> + VIR_FREE(charAlias);
>>> +
>>> ret = qemuMonitorAddDevice(priv->mon, devstr);
>>>
>>> if (qemuDomainObjExitMonitor(driver, vm) < 0)
>>> @@ -1414,9 +1427,9 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver,
>>> return 0;
>>>
>>> error:
>>> + VIR_FREE(charAlias);
>>> VIR_FREE(devstr);
>>> return -1;
>>> -
>>> }
>>>
>>> static int
>>>
>>
>> ACK with this squashed in:
> I went ahead, squashed that in and pushed because we are getting close
> to the release and it would be nice to have this bugfix in it.
Thanks, I have no time to post another patch yet, it's to implement
redirdev detaching, will post tonight.
Regards,
Osier
More information about the libvir-list
mailing list