On Thu, Sep 09, 2021 at 13:46:41 -0400, Laine Stump wrote: > The ACPI index of a device in a running guest can't be modified, and > libvirt doesn't actually attempt to modify it, but it was possible for > a user to request such a modification, and libvirt wouldn't complain, > thus misleading the user into thinking that it had actually been changed. > > Resolves: https://bugzilla.redhat.com/1998920 > > Signed-off-by: Laine Stump <laine@xxxxxxxxxx> > --- > src/conf/domain_conf.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index fefc527901..7ff890d8b7 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -28485,6 +28485,12 @@ virDomainDefCompatibleDevice(virDomainDef *def, > _("changing device alias is not allowed")); > return -1; > } > + > + if (data.newInfo->acpiIndex != data.oldInfo->acpiIndex) { > + virReportError(VIR_ERR_OPERATION_DENIED, "%s", > + _("changing device 'acpi index' is not allowed")); > + return -1; > + } I don't remember any more what the intended semantics of the 'update' API are in regards to asking the user to provide a complete definition of the device, but according to the 'alias' check above we seem to be specifically ignoring the situation when the new definition didn't provide an alias. This seems to be hinting that we ignore stuff that the used didn't provide. If that's the case you'll need to specifically exclude index '0' from the above check.