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)