Re: [PATCH v4 1/2] tpm: Fix error handling in async work

From: Jarkko Sakkinen
Date: Sun Jan 16 2022 - 09:34:29 EST


On Sat, Jan 15, 2022 at 05:26:26PM -0800, Tadeusz Struk wrote:
> When an invalid (non existing) handle is used in a TPM command,
> that uses the resource manager interface (/dev/tpmrm0) the resource
> manager tries to load it from its internal cache, but fails and
> the tpm_dev_transmit returns an -EINVAL error to the caller.
> The existing async handler doesn't handle these error cases
> currently and the condition in the poll handler never returns
> mask with EPOLLIN set.
> The result is that the poll call blocks and the application gets stuck
> until the user_read_timer wakes it up after 120 sec.
> Change the tpm_dev_async_work function to handle error conditions
> returned from tpm_dev_transmit they are also reflected in the poll mask
> and a correct error code could passed back to the caller.
>
> Cc: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
> Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> Cc: <linux-integrity@xxxxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Cc: <linux-kernel@xxxxxxxxxxxxxxx>
>
> Fixes: 9e1b74a63f77 ("tpm: add support for nonblocking operation")
> Tested-by: Jarkko Sakkinen<jarkko@xxxxxxxxxx>
> Signed-off-by: Tadeusz Struk <tstruk@xxxxxxxxx>

Thank you.

Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>

BR, Jarkko