int
-qemuAssignDeviceRNGAlias(virDomainRNGDefPtr rng,
- size_t idx)
+qemuAssignDeviceRNGAlias(virDomainDefPtr def,
+ virDomainRNGDefPtr rng)
{
- if (virAsprintf(&rng->info.alias, "rng%zu", idx) < 0)
+ size_t i;
+ int maxidx = 0;
+ int idx;
+
+ for (i = 0; i < def->nrngs; i++) {
+ if ((idx = qemuDomainDeviceAliasIndex(&def->rngs[i]->info, "rng")) >= maxidx)
+ maxidx = idx + 1;
+ }
+
+ if (virAsprintf(&rng->info.alias, "rng%d", maxidx) < 0)
return -1;
return 0;
return -1;
}
for (i = 0; i < def->nrngs; i++) {
- if (qemuAssignDeviceRNGAlias(def->rngs[i], i) < 0)
+ if (virAsprintf(&def->rngs[i]->info.alias, "rng%zu", i) < 0)
return -1;
}
if (def->tpm) {
virDomainRedirdevDefPtr redirdev,
int idx);
-int qemuAssignDeviceRNGAlias(virDomainRNGDefPtr rng,
- size_t idx);
+int qemuAssignDeviceRNGAlias(virDomainDefPtr def,
+ virDomainRNGDefPtr rng);
int qemuAssignDeviceAliases(virDomainDefPtr def, virQEMUCapsPtr qemuCaps);
const char *type;
int ret = -1;
- if (qemuAssignDeviceRNGAlias(rng, vm->def->nrngs) < 0)
+ if (qemuAssignDeviceRNGAlias(vm->def, rng) < 0)
return -1;
/* preallocate space for the device definition */