On 08.02.2019 18:02, Andrea Bolognani wrote: > On Thu, 2019-02-07 at 14:31 +0300, Nikolay Shirokovskiy wrote: > [...] >> @@ -393,9 +393,11 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, >> info->addr.ccw.ssid, >> info->addr.ccw.devno); >> } else if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_ISA) { >> - virBufferAsprintf(buf, ",iobase=0x%x,irq=0x%x", >> - info->addr.isa.iobase, >> - info->addr.isa.irq); >> + if (info->addr.isa.iobase) >> + virBufferAsprintf(buf, ",iobase=0x%x", info->addr.isa.iobase); >> + >> + if (info->addr.isa.irq) >> + virBufferAsprintf(buf, ",irq=0x%x", info->addr.isa.irq); > > It's entirely unclear to me why you're doing this. Can you please > provide some explanation? Both irq and iobase are optional and value reserved for "not specified" is 0. However we pass this 0 value as it was set explicitly to qemu. This is odd. For example if we have 2 isa-serials with addresses without irq then both have irq=0. Is this meaningful configuration? Specifying irq for debugcon just does not work: error: internal error: qemu unexpectedly closed the monitor: 2019-02-11T08:33:00.460078Z qemu-kvm: -device isa-debugcon,chardev=charserial0,id=serial0,iobase=0x402,irq=0x0: Property '.irq' not found Nikolay > > Also note that this won't just affect isa-debugcon but also any > other device with an ISA address, so I really don't think you can > just go ahead and change it without breaking existing guests. > > [...] >> +++ b/tests/qemuxml2argvtest.c >> @@ -1490,6 +1490,7 @@ mymain(void) >> QEMU_CAPS_DEVICE_ISA_SERIAL); >> DO_TEST("pci-serial-dev-chardev", >> QEMU_CAPS_DEVICE_PCI_SERIAL); >> + DO_TEST("isa-serial-debugcon", NONE); >> >> DO_TEST("channel-guestfwd", NONE); >> DO_TEST_CAPS_VER("channel-unix-guestfwd", "2.5.0"); > > If you had included this hunk in the previous commit, then the > QEMU command line would have been generated right away... I don't > think this belongs in a separate commit. >