This change fixes an issue with virtio console port assignment on vioserial buses.
Currently, when trying to autoassign a virtio console device, the device cannot be
assigned to a port greater than 0 on vioserial buses.
You will receive the following error:
`virtio-serial-bus: A port already exists at id 0`
Therefore, the data needs to be passed back into info when allowZero is true
Fixes: 16db8d2ec540 ("Add functions to track virtio-serial addresses")
Reviewed-by: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
Signed-off-by: Aaron M. Brown <aaronmbr(a)linux.ibm.com>
---
src/conf/domain_addr.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
index 8dfa8feca0..76e11c0dde 100644
--- a/src/conf/domain_addr.c
+++ b/src/conf/domain_addr.c
@@ -1737,6 +1737,13 @@ virDomainVirtioSerialAddrAssign(virDomainDef *def,
if (virDomainVirtioSerialAddrNextFromController(addrs,
&ptr->addr.vioserial) <
0)
return -1;
+
+ if (ptr == &nfo) {
+ /* pass the vioserial data back into info as info is used
+ * later for port assignment */
+ info->addr.vioserial = ptr->addr.vioserial;
+ }
+
} else {
if (virDomainVirtioSerialAddrNext(def, addrs, &ptr->addr.vioserial,
allowZero) < 0)
--
2.39.5 (Apple Git-154)