This change fixes an issue with virito console port assignment on vioserial 
buses.
Currently, a virtio console device cannot be assigned to a port greater than 0 
on
vioserial buses. When trying to add more than one virtio console device on a 
single
vioserial bus, you will get a port already exists with id 0 error.
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 <fiu...@linux.ibm.com>
Signed-off-by: Aaron M. Brown <aaron...@linux.ibm.com>
---
 src/conf/domain_addr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c
index 8dfa8feca0..bc2b0f50e8 100644
--- a/src/conf/domain_addr.c
+++ b/src/conf/domain_addr.c
@@ -1737,6 +1737,12 @@ virDomainVirtioSerialAddrAssign(virDomainDef *def,
         if (virDomainVirtioSerialAddrNextFromController(addrs,
                                                         &ptr->addr.vioserial) 
< 0)
             return -1;
+
+        if (ptr == &nfo) {
+            /* pass the vioserial data back into info */
+            info->addr.vioserial = ptr->addr.vioserial;
+        }
+
     } else {
         if (virDomainVirtioSerialAddrNext(def, addrs, &ptr->addr.vioserial,
                                           allowZero) < 0)
-- 
2.39.5 (Apple Git-154)

Reply via email to