Based on some digital archaeology performed by jtomko, it's been determined
that the persistentAddrs variable is no longer necessary...
The variable was added by:
commit
141dea6bc7222107c2357acb68066baea5b26df3
CommitDate: 2010-02-12 17:25:52 +0000
Add persistence of PCI addresses to QEMU
Where it was set to 0 on domain startup if qemu did not support the
QEMUD_CMD_FLAG_DEVICE capability, to clear the addresses at shutdown,
because QEMU might make up different ones next time.
As of commit
f5dd58a6088cfc6e8bd354b693d399807a8ec395
CommitDate: 2012-07-11 11:19:05 +0200
qemu: Extended qemuDomainAssignAddresses to be callable from
everywhere.
this was broken, when the persistentAddrs = 0 assignment was moved
inside qemuDomainAssignPCIAddresses and while it pretends to check
for !QEMU_CAPS_DEVICE, its parent qemuDomainAssignAddresses is only
called if QEMU_CAPS_DEVICE is present.
virDomainPCIAddressSetPtr pciaddrs;
virDomainCCWAddressSetPtr ccwaddrs;
virDomainVirtioSerialAddrSetPtr vioserialaddrs;
- int persistentAddrs;
virQEMUCapsPtr qemuCaps;
char *lockState;
priv = obj->privateData;
/* if this is the live domain object, we persist the addresses */
virDomainVirtioSerialAddrSetFree(priv->vioserialaddrs);
- priv->persistentAddrs = 1;
priv->vioserialaddrs = addrs;
addrs = NULL;
}
if (addrs) {
/* if this is the live domain object, we persist the CCW addresses*/
virDomainCCWAddressSetFree(priv->ccwaddrs);
- priv->persistentAddrs = 1;
priv->ccwaddrs = addrs;
addrs = NULL;
- } else {
- priv->persistentAddrs = 0;
}
}
ret = 0;
priv = obj->privateData;
/* if this is the live domain object, we persist the PCI addresses */
virDomainPCIAddressSetFree(priv->pciaddrs);
- priv->persistentAddrs = 1;
priv->pciaddrs = addrs;
addrs = NULL;
}
priv->qemuDevices = NULL;
virDomainDefClearDeviceAliases(vm->def);
- if (!priv->persistentAddrs) {
- virDomainDefClearPCIAddresses(vm->def);
- virDomainPCIAddressSetFree(priv->pciaddrs);
- priv->pciaddrs = NULL;
- virDomainDefClearCCWAddresses(vm->def);
- virDomainCCWAddressSetFree(priv->ccwaddrs);
- priv->ccwaddrs = NULL;
- virDomainVirtioSerialAddrSetFree(priv->vioserialaddrs);
- priv->vioserialaddrs = NULL;
- }
qemuHostdevReAttachDomainDevices(driver, vm->def);