On Mon, 3 Jan 2022, Divya Garg wrote: > Thankyou Ani for the review. I will be taking up the comments > in next patchset along with other comments. > > On 03/01/22 1:44 pm, Ani Sinha wrote: > > > > > On Mon, 3 Jan 2022, Divya Garg wrote: > > > > > Hi all ! > > > > > > Looking forward for the review comments on the patch. > > > > > For single patches, no need to use numbering. > I have also added the cover letter with the patch. Hence added the numbering > here. OK I did not see the cover letter. > > > > > Thanks > > > Regards > > > Divya Garg > > > > > > > > > On 12/12/21 9:27 am, “Divya wrote: > > > > From: Divya Garg <divya.garg@xxxxxxxxxxx> > > > > > > > > VM XML accepts target.port but this does not get passed while building > > > > the > > > > qemu > > > > command line for this VM. > > > > > > > > This patch fixes this bug. In addition, > > I think we should split up this patch into two, one that fixes the > > existing issue and the other that introduces additinal checks. It would be > > easier to review it that way. > Yeah sounds reasonable. Will do it in the next patch set. > > > > this introduces additional checks in > > > > the port allocation logic for isa-serial devices to : > > > > * Check availability of requested ports > > > > * Prevent duplicate device assignments to the same port. > > > > * In case no ports are provided in the XML, this patch scans the list of > > > > unused > > > > isa-serial indices to automatically assign available ports for this > > > > VM. > > > > > > > > Signed-off-by: Divya Garg <divya.garg@xxxxxxxxxxx> > > > > --- > > > > src/conf/domain_conf.c | 66 > > > > ++++++++++++++++--- > > > > src/conf/domain_conf.h | 1 + > > > > src/qemu/qemu_command.c | 21 ++++-- > > > > ...g-console-compat-2-live+console-virtio.xml | 4 +- > > > > .../qemuhotplug-console-compat-2-live.xml | 4 +- > > > > tests/qemuxml2argvdata/bios.args | 2 +- > > > > .../qemuxml2argvdata/console-compat-auto.args | 2 +- > > > > .../console-compat-chardev.args | 2 +- > > > > tests/qemuxml2argvdata/console-compat.args | 2 +- > > > > .../qemuxml2argvdata/console-virtio-many.args | 2 +- > > > > tests/qemuxml2argvdata/controller-order.args | 2 +- > > > > .../name-escape.x86_64-2.11.0.args | 4 +- > > > > .../q35-virt-manager-basic.args | 2 +- > > > > .../serial-dev-chardev-iobase.args | 2 +- > > > > .../qemuxml2argvdata/serial-dev-chardev.args | 2 +- > > > > .../qemuxml2argvdata/serial-file-chardev.args | 2 +- > > > > tests/qemuxml2argvdata/serial-file-log.args | 2 +- > > > > .../qemuxml2argvdata/serial-many-chardev.args | 4 +- > > > > .../qemuxml2argvdata/serial-pty-chardev.args | 2 +- > > > > tests/qemuxml2argvdata/serial-spiceport.args | 2 +- > > > > .../qemuxml2argvdata/serial-tcp-chardev.args | 2 +- > > > > .../serial-tcp-telnet-chardev.args | 2 +- > > > > .../serial-tcp-tlsx509-chardev-notls.args | 4 +- > > > > .../serial-tcp-tlsx509-chardev-notls.xml | 2 +- > > > > .../serial-tcp-tlsx509-chardev-verify.args | 4 +- > > > > .../serial-tcp-tlsx509-chardev-verify.xml | 2 +- > > > > .../serial-tcp-tlsx509-chardev.args | 4 +- > > > > .../serial-tcp-tlsx509-chardev.xml | 2 +- > > > > .../serial-tcp-tlsx509-secret-chardev.args | 4 +- > > > > .../serial-tcp-tlsx509-secret-chardev.xml | 2 +- > > > > .../qemuxml2argvdata/serial-udp-chardev.args | 4 +- > > > > .../qemuxml2argvdata/serial-unix-chardev.args | 4 +- > > > > .../serial-unix-chardev.x86_64-latest.args | 4 +- > > > > tests/qemuxml2argvdata/serial-vc-chardev.args | 2 +- > > > > tests/qemuxml2argvdata/user-aliases.args | 4 +- > > > > .../virtio-9p-createmode.x86_64-latest.args | 2 +- > > > > .../virtio-9p-multidevs.x86_64-latest.args | 2 +- > > > > .../x86_64-pc-graphics.x86_64-latest.args | 2 +- > > > > .../x86_64-pc-headless.x86_64-latest.args | 2 +- > > > > .../x86_64-q35-graphics.x86_64-latest.args | 2 +- > > > > .../x86_64-q35-headless.x86_64-latest.args | 2 +- > > > > .../serial-tcp-tlsx509-chardev.xml | 2 +- > > > > 42 files changed, 126 insertions(+), 64 deletions(-) > > > > > > > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > > > > index 107d2a4f5d..e8b19828d4 100644 > > > > --- a/src/conf/domain_conf.c > > > > +++ b/src/conf/domain_conf.c > > > > @@ -5319,6 +5319,61 @@ virDomainHostdevDefPostParse(virDomainHostdevDef > > > > *dev, > > > > } > > > > +static int > > > > +virDomainChrIsaSerialDefPostParse(virDomainDef *def) > > > > +{ > > > > + size_t i, j; > > > > + size_t isa_serial_count = 0; > > > > + int isa_device_index_arr[VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS] = {0}; > > > > + bool used_serial_port[VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS] = > > > > {false}; > > > > + > > > > + for (i = 0; i < def->nserials; i++) { > > > > + if (def->serials[i]->targetType == > > > > + VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL) { > > > > + if (isa_serial_count >= VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS) > > > > { > > > > + virReportError(VIR_ERR_INTERNAL_ERROR, > > > > + _("Maximum supported number of ISA > > > > serial > > > > ports is %d."), VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS); > > Use '%d' , please see > > https://urldefense.proofpoint.com/v2/url?u=https-3A__libvirt.org_coding-2Dstyle.html-23error-2Dmessage-2Dformat&d=DwIDaQ&c=s883GpUCOChKOHiocYtGcg&r=2QGHz-fTCVWImEBKe1ZcSe5t6UfasnhvdzD5DcixwOE&m=KNQ_Qw3y8qxj42KUdx9VcbmzQrwtyRwq2RiDkhMkNFypGybsocys4iwqrICwnIDn&s=n1ip3VFBqnojUNQYyHUmorNlMSHxKHm-rHK9BfGQ2lQ&e= > Got it ! Thanks. > > > > + return -1; > > > > + } > > > > + isa_device_index_arr[isa_serial_count++] = i; > > > > + } > > > > + /* Check for the user defined ports and mark them used if in > > > > the > > > > range > > > > + * of isa-serial ports, .i.e, from 0 to > > > > + * VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS. > > > > + */ > > > > + if (def->serials[i]->target.port != -1 && > > > > + def->serials[i]->target.port < > > > > VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS) { > > > > + if (used_serial_port[def->serials[i]->target.port]) { > > > > + virReportError(VIR_ERR_INTERNAL_ERROR, > > > > + _("target port [%d] already > > > > allocated."), > > Please conform to the error string formats as documented here: > > https://urldefense.proofpoint.com/v2/url?u=https-3A__libvirt.org_coding-2Dstyle.html-23error-2Dmessage-2Dformat&d=DwIDaQ&c=s883GpUCOChKOHiocYtGcg&r=2QGHz-fTCVWImEBKe1ZcSe5t6UfasnhvdzD5DcixwOE&m=KNQ_Qw3y8qxj42KUdx9VcbmzQrwtyRwq2RiDkhMkNFypGybsocys4iwqrICwnIDn&s=n1ip3VFBqnojUNQYyHUmorNlMSHxKHm-rHK9BfGQ2lQ&e= > Sure. Instead of [%d] I will use '%d'. Thankyou. > > > > > > def->serials[i]->target.port); > > > > + return -1; > > > > + } > > > > + used_serial_port[def->serials[i]->target.port] = true; > > > > + } > > > > + > > > > + } > > > > + > > > > + /* Assign the ports to the devices. */ > > > > + for (i = 0; i < isa_serial_count; i++) { > > > > + int isa_index = isa_device_index_arr[i]; > > > > + if (def->serials[isa_index]->target.port != -1) > > > > + continue; > > > > + for (j = 0; j < VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS; j++) { > > > > + if (!used_serial_port[j]) { > > > > + def->serials[isa_index]->target.port = j; > > > > + used_serial_port[j] = true; > > > > + break; > > > > + } > > > > + } > > > > + if (def->serials[isa_index]->target.port == -1) { > > > > + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", > > > > + _("out of ports for isa-serial device.")); > > > > + return -1; > > > > + } > > > > + } > > > > + return 0; > > > > +} > > > > + > > > > static void > > > > virDomainChrDefPostParse(virDomainChrDef *chr, > > > > const virDomainDef *def) > > > > @@ -6186,6 +6241,9 @@ virDomainDefPostParse(virDomainDef *def, > > > > goto cleanup; > > > > } > > > > + if (virDomainChrIsaSerialDefPostParse(def) < 0) > > > > + return -1; > > > > + > > > > /* iterate the devices */ > > > > ret = virDomainDeviceInfoIterateFlags(def, > > > > virDomainDefPostParseDeviceIterator, > > > > @@ -19857,14 +19915,6 @@ virDomainDefParseXML(xmlXPathContextPtr ctxt, > > > > if (!chr) > > > > return NULL; > > > > - if (chr->target.port == -1) { > > > > - int maxport = -1; > > > > - for (j = 0; j < i; j++) { > > > > - if (def->serials[j]->target.port > maxport) > > > > - maxport = def->serials[j]->target.port; > > > > - } > > > > - chr->target.port = maxport + 1; > > > > - } > > > > def->serials[def->nserials++] = chr; > > > > } > > > > VIR_FREE(nodes); > > > > diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h > > > > index c0c07ea6ba..be162e592c 100644 > > > > --- a/src/conf/domain_conf.h > > > > +++ b/src/conf/domain_conf.h > > > > @@ -1179,6 +1179,7 @@ typedef enum { > > > > VIR_DOMAIN_CHR_CONSOLE_TARGET_TYPE_LAST > > > > } virDomainChrConsoleTargetType; > > > > +#define VIR_MAX_AVAILABLE_ISA_SERIAL_PORTS 4 For this hard limit, you should probably refer to the Qemu commit which introduced this: commit def337ffda34d331404bd7f1a42726b71500df22 Author: Peter Maydell <peter.maydell@xxxxxxxxxx> Date: Fri Apr 20 15:52:46 2018 +0100 serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS You can add this information in the commit message and refer to MAX_ISA_SERIAL_PORTS definition in Qemu with a comment here. If in future in Qemu if we change the value of MAX_ISA_SERIAL_PORTS, we can also make same changes here. > > > > typedef enum { > > > > VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE = 0, > > > > VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL, > > > > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > > > > index c47998aabd..797cdfb955 100644 > > > > --- a/src/qemu/qemu_command.c > > > > +++ b/src/qemu/qemu_command.c > > > > @@ -10953,11 +10953,22 @@ qemuBuildSerialChrDeviceProps(const > > > > virDomainDef > > > > *def, > > > > return NULL; > > > > } > > > > - if (virJSONValueObjectAdd(&props, > > > > - "s:driver", > > > > virDomainChrSerialTargetModelTypeToString(serial->targetModel), > > > > - "s:chardev", chardev, > > > > - "s:id", serial->info.alias, > > > > - NULL) < 0) > > > > + if (serial->targetModel == > > > > VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL) { > > > > + if (virJSONValueObjectAdd(&props, > > > > + "s:driver", > > > > + > > > > virDomainChrSerialTargetModelTypeToString(serial->targetModel), > > > > + "s:chardev", chardev, > > > > + "s:id", serial->info.alias, > > > > + "k:index", serial->target.port, > > > > + NULL) < 0) > > > > + return NULL; > > > > + } > > > > + else if (virJSONValueObjectAdd(&props, > > > > + "s:driver", > > > > + > > > > virDomainChrSerialTargetModelTypeToString(serial->targetModel), > > > > + "s:chardev", chardev, > > > > + "s:id", serial->info.alias, > > > > + NULL) < 0) > > > > return NULL; > > > > if (qemuBuildDeviceAddressProps(props, def, &serial->info) < 0) > > > > diff --git > > > > a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml > > > > b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml > > > > index 5d688e7748..295d75b768 100644 > > > > --- > > > > a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml > > > > +++ > > > > b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml > > > > @@ -74,7 +74,7 @@ > > > > <alias name='serial0'/> > > > > </serial> > > > > <serial type='pty'> > > > > - <target type='isa-serial' port='0'> > > > > + <target type='isa-serial' port='1'> > > > > <model name='isa-serial'/> > > > > </target> > > > > <alias name='serial1'/> > > > > @@ -82,7 +82,7 @@ > > > > <serial type='tcp'> > > > > <source mode='bind' host='0.0.0.0' service='2445'/> > > > > <protocol type='raw'/> > > > > - <target type='isa-serial' port='1'> > > > > + <target type='isa-serial' port='2'> > > > > <model name='isa-serial'/> > > > > </target> > > > > <alias name='serial2'/> > > > > diff --git > > > > a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml > > > > b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml > > > > index b916f30412..850ebddf52 100644 > > > > --- a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml > > > > +++ b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml > > > > @@ -74,7 +74,7 @@ > > > > <alias name='serial0'/> > > > > </serial> > > > > <serial type='pty'> > > > > - <target type='isa-serial' port='0'> > > > > + <target type='isa-serial' port='1'> > > > > <model name='isa-serial'/> > > > > </target> > > > > <alias name='serial1'/> > > > > @@ -82,7 +82,7 @@ > > > > <serial type='tcp'> > > > > <source mode='bind' host='0.0.0.0' service='2445'/> > > > > <protocol type='raw'/> > > > > - <target type='isa-serial' port='1'> > > > > + <target type='isa-serial' port='2'> > > > > <model name='isa-serial'/> > > > > </target> > > > > <alias name='serial2'/> > > > > diff --git a/tests/qemuxml2argvdata/bios.args > > > > b/tests/qemuxml2argvdata/bios.args > > > > index 0469b7419e..62ec87541d 100644 > > > > --- a/tests/qemuxml2argvdata/bios.args > > > > +++ b/tests/qemuxml2argvdata/bios.args > > > > @@ -31,7 +31,7 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device usb-tablet,id=input0,bus=usb.0,port=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/console-compat-auto.args > > > > b/tests/qemuxml2argvdata/console-compat-auto.args > > > > index 5285d0749a..9c459b641b 100644 > > > > --- a/tests/qemuxml2argvdata/console-compat-auto.args > > > > +++ b/tests/qemuxml2argvdata/console-compat-auto.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/console-compat-chardev.args > > > > b/tests/qemuxml2argvdata/console-compat-chardev.args > > > > index 5285d0749a..9c459b641b 100644 > > > > --- a/tests/qemuxml2argvdata/console-compat-chardev.args > > > > +++ b/tests/qemuxml2argvdata/console-compat-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/console-compat.args > > > > b/tests/qemuxml2argvdata/console-compat.args > > > > index 9f37788586..709a82faad 100644 > > > > --- a/tests/qemuxml2argvdata/console-compat.args > > > > +++ b/tests/qemuxml2argvdata/console-compat.args > > > > @@ -30,5 +30,5 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/console-virtio-many.args > > > > b/tests/qemuxml2argvdata/console-virtio-many.args > > > > index dc1aca1129..b509cd55b5 100644 > > > > --- a/tests/qemuxml2argvdata/console-virtio-many.args > > > > +++ b/tests/qemuxml2argvdata/console-virtio-many.args > > > > @@ -31,7 +31,7 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev pty,id=charconsole1 \ > > > > -device virtconsole,chardev=charconsole1,id=console1 \ > > > > -chardev pty,id=charconsole2 \ > > > > diff --git a/tests/qemuxml2argvdata/controller-order.args > > > > b/tests/qemuxml2argvdata/controller-order.args > > > > index 51571a27bf..51fa04dfd8 100644 > > > > --- a/tests/qemuxml2argvdata/controller-order.args > > > > +++ b/tests/qemuxml2argvdata/controller-order.args > > > > @@ -37,7 +37,7 @@ QEMU_AUDIO_DRV=spice \ > > > > -chardev spicevmc,id=charsmartcard0,name=smartcard \ > > > > -device > > > > ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev spicevmc,id=charchannel0,name=vdagent \ > > > > -device > > > > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 > > > > \ > > > > -device usb-tablet,id=input0,bus=usb.0,port=1.2 \ > > > > diff --git a/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args > > > > b/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args > > > > index 1ce91ff354..a57adedfa5 100644 > > > > --- a/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args > > > > +++ b/tests/qemuxml2argvdata/name-escape.x86_64-2.11.0.args > > > > @@ -32,9 +32,9 @@ QEMU_AUDIO_DRV=spice \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,write-cache=on > > > > \ > > > > -device > > > > ccid-card-emulated,backend=certificates,cert1=cert1,,foo,cert2=cert2,cert3=cert3,db=/etc/pki/nssdb,,foo,id=smartcard0,bus=ccid0.0 > > > > \ > > > > -chardev tty,id=charserial0,path=/dev/ttyS2,,foo \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=1 \ > > > > -chardev file,id=charserial1,path=/tmp/serial.log,,foo,append=on \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ > > > > -chardev pipe,id=charchannel0,path=/tmp/guestfwd,,foo \ > > > > -netdev > > > > user,guestfwd=tcp:10.0.2.1:4600-chardev:charchannel0,id=channel0 \ > > > > -vnc vnc=unix:/tmp/lib/domain--1-foo=1,,bar=2/vnc.sock \ > > > > diff --git a/tests/qemuxml2argvdata/q35-virt-manager-basic.args > > > > b/tests/qemuxml2argvdata/q35-virt-manager-basic.args > > > > index 6e84c9ca2a..a33a74e355 100644 > > > > --- a/tests/qemuxml2argvdata/q35-virt-manager-basic.args > > > > +++ b/tests/qemuxml2argvdata/q35-virt-manager-basic.args > > > > @@ -40,7 +40,7 @@ QEMU_AUDIO_DRV=spice \ > > > > -netdev user,id=hostnet0 \ > > > > -device > > > > virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:9a:e6:c6,bus=pci.1,addr=0x0 > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev > > > > socket,id=charchannel0,path=/tmp/channel/domain--1-virt-manager-basic/org.qemu.guest_agent.0,server=on,wait=off > > > > \ > > > > -device > > > > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 > > > > \ > > > > -chardev spicevmc,id=charchannel1,name=vdagent \ > > > > diff --git a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args > > > > b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args > > > > index dfa6785795..1f358b6469 100644 > > > > --- a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args > > > > +++ b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev tty,id=charserial0,path=/dev/ttyS2 \ > > > > --device isa-serial,chardev=charserial0,id=serial0,iobase=1016,irq=4 \ > > > > +-device > > > > isa-serial,chardev=charserial0,id=serial0,index=0,iobase=1016,irq=4 > > > > \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.args > > > > b/tests/qemuxml2argvdata/serial-dev-chardev.args > > > > index c325f21e0c..47da5b8454 100644 > > > > --- a/tests/qemuxml2argvdata/serial-dev-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-dev-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev tty,id=charserial0,path=/dev/ttyS2 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-file-chardev.args > > > > b/tests/qemuxml2argvdata/serial-file-chardev.args > > > > index 4cbd0edf1c..5b8f3be45a 100644 > > > > --- a/tests/qemuxml2argvdata/serial-file-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-file-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev file,id=charserial0,path=/tmp/serial.log,append=on \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-file-log.args > > > > b/tests/qemuxml2argvdata/serial-file-log.args > > > > index c4c6106200..9ee066ef49 100644 > > > > --- a/tests/qemuxml2argvdata/serial-file-log.args > > > > +++ b/tests/qemuxml2argvdata/serial-file-log.args > > > > @@ -30,5 +30,5 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > file,id=charserial0,path=/tmp/serial.log,logfile=/var/lib/libvirt/qemu/demo-serial.log,logappend=off > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-many-chardev.args > > > > b/tests/qemuxml2argvdata/serial-many-chardev.args > > > > index 2c548c9e4b..da0d0b21c3 100644 > > > > --- a/tests/qemuxml2argvdata/serial-many-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-many-chardev.args > > > > @@ -30,8 +30,8 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev file,id=charserial1,path=/tmp/serial.log \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-pty-chardev.args > > > > b/tests/qemuxml2argvdata/serial-pty-chardev.args > > > > index 5285d0749a..9c459b641b 100644 > > > > --- a/tests/qemuxml2argvdata/serial-pty-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-pty-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-spiceport.args > > > > b/tests/qemuxml2argvdata/serial-spiceport.args > > > > index 43e65a0679..704e6d1820 100644 > > > > --- a/tests/qemuxml2argvdata/serial-spiceport.args > > > > +++ b/tests/qemuxml2argvdata/serial-spiceport.args > > > > @@ -29,7 +29,7 @@ QEMU_AUDIO_DRV=spice \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev spiceport,id=charserial0,name=org.qemu.console.serial.0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device usb-tablet,id=input0,bus=usb.0,port=1 \ > > > > -spice > > > > port=5903,tls-port=5904,addr=127.0.0.1,x509-dir=/etc/pki/libvirt-spice,seamless-migration=on > > > > \ > > > > -device > > > > qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 > > > > \ > > > > diff --git a/tests/qemuxml2argvdata/serial-tcp-chardev.args > > > > b/tests/qemuxml2argvdata/serial-tcp-chardev.args > > > > index aec7093d03..263add4409 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev socket,id=charserial0,host=127.0.0.1,port=9999 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args > > > > b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args > > > > index 72f81d7938..13e092c4c7 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > socket,id=charserial0,host=127.0.0.1,port=9999,telnet=on,server=on,wait=off > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args > > > > index 7db40862e9..8bf070d820 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args > > > > @@ -30,8 +30,8 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,localport=1111 > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev socket,id=charserial1,host=127.0.0.1,port=5555 \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.xml > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.xml > > > > index 9b0b8b3e73..522f0184d3 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.xml > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.xml > > > > @@ -37,7 +37,7 @@ > > > > <serial type='tcp'> > > > > <source mode='connect' host='127.0.0.1' service='5555' > > > > tls='no'/> > > > > <protocol type='raw'/> > > > > - <target type='isa-serial' port='0'> > > > > + <target type='isa-serial' port='1'> > > > > <model name='isa-serial'/> > > > > </target> > > > > </serial> > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args > > > > index f3dc5f5019..374d24ec00 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args > > > > @@ -30,9 +30,9 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,localport=1111 > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -object > > > > tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,endpoint=client,verify-peer=on > > > > \ > > > > -chardev > > > > socket,id=charserial1,host=127.0.0.1,port=5555,tls-creds=objcharserial1_tls0 > > > > \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.xml > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.xml > > > > index 75c6c7f5f4..d41f5ee03e 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.xml > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.xml > > > > @@ -29,7 +29,7 @@ > > > > <serial type='tcp'> > > > > <source mode='connect' host='127.0.0.1' service='5555'/> > > > > <protocol type='raw'/> > > > > - <target port='0'/> > > > > + <target port='1'/> > > > > </serial> > > > > <console type='udp'> > > > > <source mode='bind' host='127.0.0.1' service='1111'/> > > > > diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args > > > > index f3dc5f5019..374d24ec00 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args > > > > @@ -30,9 +30,9 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,localport=1111 > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -object > > > > tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,endpoint=client,verify-peer=on > > > > \ > > > > -chardev > > > > socket,id=charserial1,host=127.0.0.1,port=5555,tls-creds=objcharserial1_tls0 > > > > \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.xml > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.xml > > > > index 75c6c7f5f4..d41f5ee03e 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.xml > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.xml > > > > @@ -29,7 +29,7 @@ > > > > <serial type='tcp'> > > > > <source mode='connect' host='127.0.0.1' service='5555'/> > > > > <protocol type='raw'/> > > > > - <target port='0'/> > > > > + <target port='1'/> > > > > </serial> > > > > <console type='udp'> > > > > <source mode='bind' host='127.0.0.1' service='1111'/> > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args > > > > index 151629458b..2defeb28da 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args > > > > @@ -30,10 +30,10 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,localport=1111 > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -object > > > > secret,id=charserial1-secret0,data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 > > > > \ > > > > -object > > > > tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,endpoint=client,verify-peer=on,passwordid=charserial1-secret0 > > > > \ > > > > -chardev > > > > socket,id=charserial1,host=127.0.0.1,port=5555,tls-creds=objcharserial1_tls0 > > > > \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ > > > > -msg timestamp=on > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.xml > > > > b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.xml > > > > index 670f282b84..2bf954bc9f 100644 > > > > --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.xml > > > > +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.xml > > > > @@ -34,7 +34,7 @@ > > > > <serial type='tcp'> > > > > <source mode='connect' host='127.0.0.1' service='5555'/> > > > > <protocol type='raw'/> > > > > - <target port='0'/> > > > > + <target port='1'/> > > > > </serial> > > > > <console type='udp'> > > > > <source mode='bind' host='127.0.0.1' service='1111'/> > > > > diff --git a/tests/qemuxml2argvdata/serial-udp-chardev.args > > > > b/tests/qemuxml2argvdata/serial-udp-chardev.args > > > > index 9d2f2e03e9..de6621f0e2 100644 > > > > --- a/tests/qemuxml2argvdata/serial-udp-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-udp-chardev.args > > > > @@ -30,8 +30,8 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev > > > > udp,id=charserial0,host=127.0.0.1,port=9998,localaddr=127.0.0.1,localport=9999 > > > > \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev udp,id=charserial1,host=,port=9999,localaddr=,localport=0 \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.args > > > > b/tests/qemuxml2argvdata/serial-unix-chardev.args > > > > index 19731b02b2..1e2444f824 100644 > > > > --- a/tests/qemuxml2argvdata/serial-unix-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-unix-chardev.args > > > > @@ -28,8 +28,8 @@ QEMU_AUDIO_DRV=none \ > > > > -boot strict=on \ > > > > -usb \ > > > > -chardev socket,id=charserial0,path=/tmp/serial.sock \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev > > > > socket,id=charserial1,path=/tmp/serial-server.sock,server=on,wait=off \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git > > > > a/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args > > > > index 1e3d5772b4..1387fc9a1d 100644 > > > > --- a/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/serial-unix-chardev.x86_64-latest.args > > > > @@ -29,9 +29,9 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config > > > > \ > > > > -boot strict=on \ > > > > -device > > > > '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' > > > > \ > > > > -chardev socket,id=charserial0,path=/tmp/serial.sock \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -chardev socket,id=charserial1,fd=1729,server=on,wait=off \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial1","id":"serial1"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial1","id":"serial1","index":1}' > > > > \ > > > > -audiodev '{"id":"audio1","driver":"none"}' \ > > > > -device > > > > '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' > > > > \ > > > > -sandbox > > > > on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny > > > > \ > > > > diff --git a/tests/qemuxml2argvdata/serial-vc-chardev.args > > > > b/tests/qemuxml2argvdata/serial-vc-chardev.args > > > > index d28a3eee47..09b33a15ee 100644 > > > > --- a/tests/qemuxml2argvdata/serial-vc-chardev.args > > > > +++ b/tests/qemuxml2argvdata/serial-vc-chardev.args > > > > @@ -30,6 +30,6 @@ QEMU_AUDIO_DRV=none \ > > > > -drive > > > > file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ > > > > -device > > > > ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ > > > > -chardev vc,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \ > > > > -msg timestamp=on > > > > diff --git a/tests/qemuxml2argvdata/user-aliases.args > > > > b/tests/qemuxml2argvdata/user-aliases.args > > > > index 486473a566..8608144b5e 100644 > > > > --- a/tests/qemuxml2argvdata/user-aliases.args > > > > +++ b/tests/qemuxml2argvdata/user-aliases.args > > > > @@ -55,9 +55,9 @@ QEMU_AUDIO_DRV=none \ > > > > -device > > > > rtl8139,netdev=hostua-AndAlsoClientMode,id=ua-AndAlsoClientMode,mac=52:54:00:8c:b1:f8,bus=pci.0,addr=0xa > > > > \ > > > > -device > > > > ccid-card-emulated,backend=nss-emulated,id=smartcard0,bus=ua-myCCID.0 \ > > > > -chardev pty,id=charserial0 \ > > > > --device isa-serial,chardev=charserial0,id=serial0 \ > > > > +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ > > > > -chardev pty,id=charserial1 \ > > > > --device isa-serial,chardev=charserial1,id=serial1 \ > > > > +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ > > > > -chardev > > > > socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/gentoo.org.qemu.guest_agent.0,server=on,wait=off > > > > \ > > > > -device > > > > virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 > > > > \ > > > > -vnc 127.0.0.1:0 \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/virtio-9p-createmode.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/virtio-9p-createmode.x86_64-latest.args > > > > index 01fe01e3c6..d306b37b53 100644 > > > > --- a/tests/qemuxml2argvdata/virtio-9p-createmode.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/virtio-9p-createmode.x86_64-latest.args > > > > @@ -37,7 +37,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config > > > > \ > > > > -fsdev local,security_model=mapped,id=fsdev-fs3,path=/export/fs3 \ > > > > -device > > > > '{"driver":"virtio-9p-pci","id":"fs3","fsdev":"fsdev-fs3","mount_tag":"fs3","bus":"pci.0","addr":"0x5"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -audiodev '{"id":"audio1","driver":"none"}' \ > > > > -device > > > > '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0xc"}' > > > > \ > > > > -sandbox > > > > on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny > > > > \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/virtio-9p-multidevs.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/virtio-9p-multidevs.x86_64-latest.args > > > > index 8b325bb7ec..0752f09fe9 100644 > > > > --- a/tests/qemuxml2argvdata/virtio-9p-multidevs.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/virtio-9p-multidevs.x86_64-latest.args > > > > @@ -35,7 +35,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config > > > > \ > > > > -fsdev > > > > local,security_model=mapped,multidevs=warn,id=fsdev-fs2,path=/export/fs2 > > > > \ > > > > -device > > > > '{"driver":"virtio-9p-pci","id":"fs2","fsdev":"fsdev-fs2","mount_tag":"fs2","bus":"pci.0","addr":"0x4"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -audiodev '{"id":"audio1","driver":"none"}' \ > > > > -device > > > > '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0xc"}' > > > > \ > > > > -sandbox > > > > on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny > > > > \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args > > > > index 3cae9fafa0..8cad1d9f38 100644 > > > > --- a/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/x86_64-pc-graphics.x86_64-latest.args > > > > @@ -37,7 +37,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \ > > > > -netdev user,id=hostnet0 \ > > > > -device > > > > '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:4c:e3:86","bus":"pci.0","addr":"0x3"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \ > > > > -device > > > > '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' > > > > \ > > > > -device > > > > '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args > > > > index fbfb823d83..3c4688a89e 100644 > > > > --- a/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/x86_64-pc-headless.x86_64-latest.args > > > > @@ -38,7 +38,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \ > > > > -netdev user,id=hostnet0 \ > > > > -device > > > > '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.0","addr":"0x2"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \ > > > > -device > > > > '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' > > > > \ > > > > -audiodev '{"id":"audio1","driver":"none"}' \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args > > > > index ca0e00f468..9e4c361ec9 100644 > > > > --- a/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/x86_64-q35-graphics.x86_64-latest.args > > > > @@ -44,7 +44,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \ > > > > -netdev user,id=hostnet0 \ > > > > -device > > > > '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:d2:70:0b","bus":"pci.1","addr":"0x0"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \ > > > > -device > > > > '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' > > > > \ > > > > -device > > > > '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \ > > > > diff --git > > > > a/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args > > > > b/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args > > > > index c6970e349d..b4d90dff5e 100644 > > > > --- a/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args > > > > +++ b/tests/qemuxml2argvdata/x86_64-q35-headless.x86_64-latest.args > > > > @@ -45,7 +45,7 @@ XDG_CONFIG_HOME=/tmp/lib/domain--1-guest/.config \ > > > > -netdev user,id=hostnet0 \ > > > > -device > > > > '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.1","addr":"0x0"}' > > > > \ > > > > -chardev pty,id=charserial0 \ > > > > --device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0"}' \ > > > > +-device > > > > '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' > > > > \ > > > > -chardev socket,id=charchannel0,fd=1729,server=on,wait=off \ > > > > -device > > > > '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}' > > > > \ > > > > -audiodev '{"id":"audio1","driver":"none"}' \ > > > > diff --git a/tests/qemuxml2xmloutdata/serial-tcp-tlsx509-chardev.xml > > > > b/tests/qemuxml2xmloutdata/serial-tcp-tlsx509-chardev.xml > > > > index 7fde19f283..de11465233 100644 > > > > --- a/tests/qemuxml2xmloutdata/serial-tcp-tlsx509-chardev.xml > > > > +++ b/tests/qemuxml2xmloutdata/serial-tcp-tlsx509-chardev.xml > > > > @@ -37,7 +37,7 @@ > > > > <serial type='tcp'> > > > > <source mode='connect' host='127.0.0.1' service='5555'/> > > > > <protocol type='raw'/> > > > > - <target type='isa-serial' port='0'> > > > > + <target type='isa-serial' port='1'> > > > > <model name='isa-serial'/> > > > > </target> > > > > </serial> > > > > > > >