[PATCH 1/5] qemuDomainChrInsertPreAlloced: Fix adding implicit console

Michal Privoznik posted 5 patches 2 years, 10 months ago
[PATCH 1/5] qemuDomainChrInsertPreAlloced: Fix adding implicit console
Posted by Michal Privoznik 2 years, 10 months ago
When hotpluging a <serial/> device, we might need to add a
<console/> device with it (because of some crazy backcompat).
Now, hotplugging is done in several phases. In one of them,
qemuDomainChrPreInsert() allocates space for both devices, and
then qemuDomainChrInsertPreAlloced() actually inserts the device
into domain definition and sets up the <console/> device with it.
Except, the condition that checks whether to create the aliased
<console/> is wrong as it compares nconsoles against 0.
Surprisingly, qemuDomainChrInsertPreAllocCleanup() doesn't suffer
from the same error.

Fixes: daf51be5f1b0f7b41c0813d43d6b66edfbe4f6d9
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 src/qemu/qemu_hotplug.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 3f45a48393..f517646c55 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1875,9 +1875,8 @@ qemuDomainChrInsertPreAlloced(virDomainDef *vmdef,
                               virDomainChrDef *chr)
 {
     virDomainChrInsertPreAlloced(vmdef, chr);
-    if (vmdef->nserials == 1 && vmdef->nconsoles == 0 &&
+    if (vmdef->nserials == 1 && vmdef->nconsoles == 1 &&
         chr->deviceType == VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL) {
-        vmdef->nconsoles = 1;
 
         /* Create an console alias for the serial port */
         vmdef->consoles[0]->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE;
-- 
2.39.2
Re: [PATCH 1/5] qemuDomainChrInsertPreAlloced: Fix adding implicit console
Posted by Ján Tomko 2 years, 9 months ago
On a Wednesday in 2023, Michal Privoznik wrote:
>When hotpluging a <serial/> device, we might need to add a
><console/> device with it (because of some crazy backcompat).
>Now, hotplugging is done in several phases. In one of them,
>qemuDomainChrPreInsert() allocates space for both devices, and
>then qemuDomainChrInsertPreAlloced() actually inserts the device
>into domain definition and sets up the <console/> device with it.
>Except, the condition that checks whether to create the aliased
><console/> is wrong as it compares nconsoles against 0.
>Surprisingly, qemuDomainChrInsertPreAllocCleanup() doesn't suffer
>from the same error.
>
>Fixes: daf51be5f1b0f7b41c0813d43d6b66edfbe4f6d9
>Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>---
> src/qemu/qemu_hotplug.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>

Reviewed-by: Ján Tomko <jtomko@redhat.com>

Jano