diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index fe58154084..170768b3bf 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4164,7 +4164,13 @@ int qemuDomainDetachChrDevice(virQEMUDriverPtr driver, rc = qemuDomainWaitForDeviceRemoval(vm); if (rc == 0 || rc == 1) { - virDomainVirtioSerialAddrRelease(priv->vioserialaddrs, &tmpChr->info); + if (chr->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_PCI) { + qemuDomainReleaseDeviceAddress(vm, &tmpChr->info, NULL); + } else if (chr->targetType == VIR_DOMAIN_CHR_SERIAL_TARGET_TYPE_USB) { + /* XXX */ + } else { + virDomainVirtioSerialAddrRelease(priv->vioserialaddrs, &tmpChr->info); + } ret = qemuDomainRemoveChrDevice(driver, vm, tmpChr); } else { ret = 0;