mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
conf: shmem: Add ABI stability check
Although the device will probably inhibit migration add checks to make sure that the configuration change gets caught.
This commit is contained in:
parent
ac5979edc4
commit
e7d67e7bad
@ -14998,6 +14998,44 @@ virDomainPanicCheckABIStability(virDomainPanicDefPtr src,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static bool
|
||||||
|
virDomainShmemDefCheckABIStability(virDomainShmemDefPtr src,
|
||||||
|
virDomainShmemDefPtr dst)
|
||||||
|
{
|
||||||
|
if (STRNEQ_NULLABLE(src->name, dst->name)) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("Target shared memory name '%s' does not match source "
|
||||||
|
"'%s'"), dst->name, src->name);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src->size != dst->size) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("Target shared memory size '%llu' does not match "
|
||||||
|
"source size '%llu'"), dst->size, src->size);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src->server.enabled != dst->server.enabled) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
_("Target shared memory server usage doesn't match "
|
||||||
|
"source"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (src->msi.vectors != dst->msi.vectors ||
|
||||||
|
src->msi.enabled != dst->msi.enabled ||
|
||||||
|
src->msi.ioeventfd != dst->msi.ioeventfd) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
|
||||||
|
_("Target shared memory MSI configuration doesn't match "
|
||||||
|
"source"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return virDomainDeviceInfoCheckABIStability(&src->info, &dst->info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* This compares two configurations and looks for any differences
|
/* This compares two configurations and looks for any differences
|
||||||
* which will affect the guest ABI. This is primarily to allow
|
* which will affect the guest ABI. This is primarily to allow
|
||||||
* validation of custom XML config passed in during migration
|
* validation of custom XML config passed in during migration
|
||||||
@ -15399,6 +15437,18 @@ virDomainDefCheckABIStability(virDomainDefPtr src,
|
|||||||
if (!virDomainPanicCheckABIStability(src->panic, dst->panic))
|
if (!virDomainPanicCheckABIStability(src->panic, dst->panic))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
|
if (src->nshmems != dst->nshmems) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("Target domain shared memory device count %zu "
|
||||||
|
"does not match source %zu"), dst->nshmems, src->nshmems);
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < src->nshmems; i++) {
|
||||||
|
if (!virDomainShmemDefCheckABIStability(src->shmems[i], dst->shmems[i]))
|
||||||
|
goto error;
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
Loading…
Reference in New Issue
Block a user