On 2025-02-18 at 11:10, Alexey Kardashevskiy wrote: > diff --git a/drivers/virt/coco/guest/tsm-guest.c > b/drivers/virt/coco/guest/tsm-guest.c > new file mode 100644 > index 000000000000..d3be089308e0 > --- /dev/null > +++ b/drivers/virt/coco/guest/tsm-guest.c > @@ -0,0 +1,291 @@ > +// SPDX-License-Identifier: GPL-2.0-only > + > +#include <linux/module.h> > +#include <linux/tsm.h> > + > +#define DRIVER_VERSION "0.1" > +#define DRIVER_AUTHOR "aik@xxxxxxx" > +#define DRIVER_DESC "TSM guest library" > + > +struct tsm_guest_subsys { > + struct tsm_subsys base; > + struct tsm_vm_ops *ops; > + void *private_data; > + struct notifier_block notifier; > +}; > + > +static int tsm_tdi_measurements_locked(struct tsm_dev *tdev) > +{ > + struct tsm_guest_subsys *gsubsys = (struct tsm_guest_subsys > *) tdev->tsm; > + struct tsm_tdi_status tstmp = { 0 }; > + struct tsm_tdi *tdi = tsm_tdi_get(tdev->physdev); > + > + if (!tdi) > + return -EFAULT; > + > + return gsubsys->ops->tdi_status(tdi, gsubsys->private_data, > &tstmp); Missing call to tsm_tdi_put().