[libvirt] [PATCH 0/2] qemu_hotplug: Two simple qemuDomainDetachChrDevice fixes

*** BLURB HERE *** Michal Prívozník (2): qemu_hotplug: Don't build device string in qemuDomainDetachChrDevice qemu_hotplug: Assume chardev alias always exists in qemuDomainDetachChrDevice src/qemu/qemu_hotplug.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) -- 2.19.2

This is basically an old artefact from 24b0821926e when the idea was: 1) Build device string only to see if chardev has any -device associated with it and thus if device_del is needed 2) Detach chardev using chardev_del Now, that DEVICE and DEVICE_DELETED capabilities are assumed for every domain 1) does not make sense anymore. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_hotplug.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 107d0fb7a9..60b393234a 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -6129,7 +6129,6 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, qemuDomainObjPrivatePtr priv = vm->privateData; virDomainDefPtr vmdef = vm->def; virDomainChrDefPtr tmpChr; - char *devstr = NULL; bool guestfwd = false; if (!(tmpChr = virDomainChrFind(vmdef, chr))) { @@ -6150,9 +6149,6 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, sa_assert(tmpChr->info.alias); - if (qemuBuildChrDeviceStr(&devstr, vmdef, tmpChr, priv->qemuCaps) < 0) - goto cleanup; - if (!async && !guestfwd) qemuDomainMarkDeviceForRemoval(vm, &tmpChr->info); @@ -6163,7 +6159,7 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, goto cleanup; } } else { - if (devstr && qemuMonitorDelDevice(priv->mon, tmpChr->info.alias) < 0) { + if (qemuMonitorDelDevice(priv->mon, tmpChr->info.alias) < 0) { ignore_value(qemuDomainObjExitMonitor(driver, vm)); goto cleanup; } @@ -6183,7 +6179,6 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, cleanup: if (!async) qemuDomainResetDeviceRemoval(vm); - VIR_FREE(devstr); return ret; } -- 2.19.2

The @tmpChr is looked up in domain definition based on user provided chardev XML. Therefore, the alias must have been allocated already when domain was started up. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_hotplug.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 60b393234a..a5c352f44b 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -6144,11 +6144,6 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, guestfwd = tmpChr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL && tmpChr->targetType == VIR_DOMAIN_CHR_CHANNEL_TARGET_TYPE_GUESTFWD; - if (!tmpChr->info.alias && qemuAssignDeviceChrAlias(vmdef, tmpChr, -1) < 0) - goto cleanup; - - sa_assert(tmpChr->info.alias); - if (!async && !guestfwd) qemuDomainMarkDeviceForRemoval(vm, &tmpChr->info); -- 2.19.2

On 2/14/19 4:56 AM, Michal Privoznik wrote:
*** BLURB HERE ***
Michal Prívozník (2): qemu_hotplug: Don't build device string in qemuDomainDetachChrDevice qemu_hotplug: Assume chardev alias always exists in qemuDomainDetachChrDevice
src/qemu/qemu_hotplug.c | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
Reviewed-by: John Ferlan <jferlan@redhat.com> John FWIW: I got one more for you too.... Your patches from guestfwd ... Coverity got grumpy about @charAlias being assigned in (monitor), but being used if rc == 0. I missed it too - I was so focused on the other aspects
participants (2)
-
John Ferlan
-
Michal Privoznik