On Fri, Oct 02, 2026 at 10:25:14AM -0400, Stefan Berger wrote: > Implement tpm_ppi_uninit and use it for proper teardown of the PPI in > tpm_crb_unrealize. > > Signed-off-by: Stefan Berger <[email protected]> > --- > hw/tpm/tpm_crb.c | 3 +++ > hw/tpm/tpm_ppi.c | 10 ++++++++++ > hw/tpm/tpm_ppi.h | 10 ++++++++++ > 3 files changed, 23 insertions(+) > > diff --git a/hw/tpm/tpm_crb.c b/hw/tpm/tpm_crb.c > index cd46b2e888..5c50a79936 100644 > --- a/hw/tpm/tpm_crb.c > +++ b/hw/tpm/tpm_crb.c > @@ -16,6 +16,7 @@ > > #include "qemu/osdep.h" > > +#include "qemu/memalign.h" > #include "qemu/module.h" > #include "qemu/error-report.h" > #include "qapi/error.h" > @@ -527,6 +528,8 @@ static void tpm_crb_unrealize(DeviceState *dev) > if (s->migration_blocker) { > migrate_del_blocker(&s->migration_blocker); > } > + > + tpm_ppi_uninit(&s->ppi, get_system_memory(), OBJECT(s)); > } > > static void tpm_crb_class_init(ObjectClass *klass, const void *data) > diff --git a/hw/tpm/tpm_ppi.c b/hw/tpm/tpm_ppi.c > index f0c34291dc..35baa083f2 100644 > --- a/hw/tpm/tpm_ppi.c > +++ b/hw/tpm/tpm_ppi.c > @@ -57,3 +57,13 @@ void tpm_ppi_init(TPMPPI *tpmppi, MemoryRegion *m, > > memory_region_add_subregion(m, addr, &tpmppi->ram); > } > + > +void tpm_ppi_uninit(TPMPPI *tpmppi, MemoryRegion *m, Object *obj) > +{ > + memory_region_del_subregion(m, &tpmppi->ram); > + > + vmstate_unregister_ram(&tpmppi->ram, DEVICE(obj)); > + > + qemu_vfree(tpmppi->buf); > + tpmppi->buf = NULL; > +} > diff --git a/hw/tpm/tpm_ppi.h b/hw/tpm/tpm_ppi.h > index 88f316ee95..c173889033 100644 > --- a/hw/tpm/tpm_ppi.h > +++ b/hw/tpm/tpm_ppi.h > @@ -32,6 +32,16 @@ typedef struct TPMPPI { > void tpm_ppi_init(TPMPPI *tpmppi, MemoryRegion *m, > hwaddr addr, Object *obj); > > +/** > + * tpm_ppi_uninit: > + * @tpmppi: a TPMPPI > + * @m: the address-space / MemoryRegion to use > + * @obj: the owner object > + * > + * Function to unregister the TPM PPI region. > + */ > +void tpm_ppi_uninit(TPMPPI *tpmppi, MemoryRegion *m, Object *obj); > + > /** > * tpm_ppi_reset: > * @tpmppi: a TPMPPI > -- > 2.55.0 >
Reviewed-by: Arun Menon <[email protected]>
