Re: [PATCH v3 4/6] tpm: Support TPM2 sized buffers (TPM2B)

From: Jarkko Sakkinen
Date: Wed Nov 15 2023 - 16:24:43 EST


On Tue Nov 7, 2023 at 7:20 PM EET, Jerry Snitselaar wrote:
> On Tue, Oct 24, 2023 at 04:15:22AM +0300, Jarkko Sakkinen wrote:
> > Add boolean parameters @alloc and @sized to tpm_buf_init():
> >
> > * If @alloc is set to false, buf->data is assumed to be pre-feeded and
> > owned by the caller.
> > * If @sized is set to true, the buffer represents a sized buffer
> > (TPM2B).
> >
> > Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> > ---
> > drivers/char/tpm/tpm-buf.c | 32 ++++++++++++++++-------
> > drivers/char/tpm/tpm-sysfs.c | 2 +-
> > drivers/char/tpm/tpm1-cmd.c | 14 +++++-----
> > drivers/char/tpm/tpm2-cmd.c | 22 ++++++++--------
> > drivers/char/tpm/tpm2-space.c | 4 +--
> > drivers/char/tpm/tpm_vtpm_proxy.c | 2 +-
> > include/linux/tpm.h | 3 ++-
> > security/keys/trusted-keys/trusted_tpm1.c | 4 +--
> > security/keys/trusted-keys/trusted_tpm2.c | 6 ++---
> > 9 files changed, 51 insertions(+), 38 deletions(-)
> >
> > diff --git a/drivers/char/tpm/tpm-buf.c b/drivers/char/tpm/tpm-buf.c
> > index fa9a4c51157a..f1d92d7e758d 100644
> > --- a/drivers/char/tpm/tpm-buf.c
> > +++ b/drivers/char/tpm/tpm-buf.c
> > @@ -7,22 +7,32 @@
> > #include <linux/tpm.h>
> >
> > /**
> > - * tpm_buf_init() - Initialize from the heap
> > + * tpm_buf_init() - Initialize a TPM buffer
> > * @buf: A @tpm_buf
> > + * @sized: Represent a sized buffer (TPM2B)
> > + * @alloc: Allocate from the heap
> > *
> > * Initialize all structure fields to zero, allocate a page from the heap, and
>
> Depending on what the decision ends up being on the bools, flags,
> separate functions, or wrappers possibly an "if needed" should be
> tacked on to the end of "allocate a page from the heap" here.
>
>
> Flags would be better when coming across calls to the routine in the
> code than the bools, but I think switching to wrappers around
> a __tpm_buf_init for the different types would be good.

Yeah, I'll bake something based on this discussion.

BR, Jarkko