Hi, On Wed, Apr 29, 2026 at 11:36:39AM -0400, Stefan Berger wrote: > > > On 4/22/26 6:30 AM, Arun Menon wrote: > > From: Arun Menon <[email protected]> > > > > - Add subsection in VMState for TPM CRB with the newly introduced > > command and response buffer GByteArrays, along with a needed callback, > > so that newer QEMU only sends the buffers if it is necessary. > > - Implement a migration blocker to prevent migration of the VM if the > > user manually enables chunking capability, cap-chunk, but the machine > > type does not support it, using a new hw_compat property called > > allow_chunk_migration. > > - Add a post_load_errp hook so that during a migration, the buffers are > > validated before destination VM is started. > > > > Signed-off-by: Arun Menon <[email protected]> > > --- > > hw/core/machine.c | 1 + > > hw/tpm/tpm_crb.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 72 insertions(+) > > > > @@ -422,6 +478,7 @@ static void tpm_crb_reset(void *dev) > > static void tpm_crb_realize(DeviceState *dev, Error **errp) > > { > > CRBState *s = CRB(dev); > > + int ret; > > if (!tpm_find()) { > > error_setg(errp, "at most one TPM device is permitted"); > > @@ -431,6 +488,15 @@ static void tpm_crb_realize(DeviceState *dev, Error > > **errp) > > error_setg(errp, "'tpmdev' property is required"); > > return; > > } > > + if (s->cap_chunk && !s->allow_chunk_migration) { > > + error_setg(&s->migration_blocker, > > + "The tpm-crb device does not support chunk migration > > with " > > + "machine version less than 11.1"); > > + ret = migrate_add_blocker_normal(&s->migration_blocker, errp); > > + if (ret < 0) { > > + return; > > Should this do an error_report() and exit(1)?
The tpm_crb_realize() function has always propagated errors in errp back to the caller and returned in case of an error. To be honest I followed the suit. A quick glance at the codebase shows that the realize function in other devices also avoid calling exit(). Regards, Arun Menon > >
