/* private XML) - need to restore at process reconnect */
uint8_t *masterKey;
size_t masterKeyLen;
+
+ /* note whether memory device alias does not correspond to slot number */
+ bool memAliasOrderMismatch;
};
# define QEMU_DOMAIN_PRIVATE(vm) \
return 0;
}
+
+static void
+qemuProcessReconnectCheckMemAliasOrderMismatch(virDomainObjPtr vm)
+{
+ size_t i;
+ int aliasidx;
+ virDomainDefPtr def = vm->def;
+ qemuDomainObjPrivatePtr priv = vm->privateData;
+
+ if (!virDomainDefHasMemoryHotplug(def) || def->nmems == 0)
+ return;
+
+ for (i = 0; i < def->nmems; i++) {
+ aliasidx = qemuDomainDeviceAliasIndex(&def->mems[i]->info, "dimm");
+
+ if (def->mems[i]->info.addr.dimm.slot != aliasidx) {
+ priv->memAliasOrderMismatch = true;
+ break;
+ }
+ }
+}
+
+
struct qemuProcessReconnectData {
virConnectPtr conn;
virQEMUDriverPtr driver;
if (qemuProcessUpdateDevices(driver, obj) < 0)
goto error;
+ qemuProcessReconnectCheckMemAliasOrderMismatch(obj);
+
/* Failure to connect to agent shouldn't be fatal */
if ((ret = qemuConnectAgent(driver, obj)) < 0) {
if (ret == -2)