
On Thu, Jun 05, 2025 at 20:09:23 -0400, Aaron M. Brown wrote:
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@linux.ibm.com> Signed-off-by: Aaron M. Brown <aaronmbr@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)
This looks good to me, but will require the appropriate hunks to make the tests pass.