ping?
> >> On 18 Feb 2016, at 16:02, Osier Yang <osier@xxxxxxxxxx> 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 | 27 ++++++++++++++++++++++----- > >>> 1 file changed, 22 insertions(+), 5 deletions(-) > >>> > >>> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c > >>> index ee305e7..5095e31 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,21 +1392,33 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver, > >>> > >>> if (qemuAssignDeviceRedirdevAlias(vm->def, redirdev, -1) < 0) > >>> goto error; > >>> - if (!(devstr = qemuBuildRedirdevDevStr(def, redirdev, priv->qemuCaps))) > >>> - goto error; > >>> > >>> - if (VIR_REALLOC_N(vm->def->redirdevs, vm->def->nredirdevs+1) < 0) > >>> + if (virAsprintf(&charAlias, "char%s", redirdev->info.alias) < 0) > >>> goto error; > >>> > >>> qemuDomainObjEnterMonitor(driver, vm); > >>> + if (qemuMonitorAttachCharDev(priv->mon, > >>> + charAlias, > >>> + &(redirdev->source.chr)) < 0) { > >>> + ignore_value(qemuDomainObjExitMonitor(driver, vm)); > >>> + goto error; > >>> + } > >>> + VIR_FREE(charAlias); > >>> + > >>> + if (!(devstr = qemuBuildRedirdevDevStr(def, redirdev, priv->qemuCaps))) > >>> + goto rollback; > >>> + > >>> + if (VIR_REALLOC_N(vm->def->redirdevs, vm->def->nredirdevs+1) < 0) > >>> + goto rollback; > >>> + > >>> ret = qemuMonitorAddDevice(priv->mon, devstr); > >>> > >>> if (qemuDomainObjExitMonitor(driver, vm) < 0) > >>> - goto error; > >>> + goto rollback; > >>> > >>> virDomainAuditRedirdev(vm, redirdev, "attach", ret == 0); > >>> if (ret < 0) > >>> - goto error; > >>> + goto rollback; > >>> > >>> vm->def->redirdevs[vm->def->nredirdevs++] = redirdev; > >>> > >>> @@ -1414,9 +1427,13 @@ int qemuDomainAttachRedirdevDevice(virQEMUDriverPtr driver, > >>> return 0; > >>> > >>> error: > >>> + VIR_FREE(charAlias); > >>> VIR_FREE(devstr); > >>> return -1; > >>> > >>> + rollback: > >>> + ignore_value(qemuMonitorDetachCharDev(priv->mon, charAlias)); > >>> + goto error; > >>> } > >>> > >>> static int > >>> -- > >>> 2.1.4 > >>> > >>> -- > >>> libvir-list mailing list > >>> libvir-list@xxxxxxxxxx > >>> https://www.redhat.com/mailman/listinfo/libvir-list >
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list