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

From: Jerry Snitselaar
Date: Tue Nov 07 2023 - 12:20:50 EST


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.


> * zero the bytes that the buffer headers will consume.
> *