Re: [RFC PATCH] tpm: don't return -EINVAL if TPM command validation fails
From: Javier Martinez Canillas
Date: Fri Nov 17 2017 - 12:56:23 EST
Hello Jason,
Thanks a lot for your feedback.
On 11/17/2017 05:57 PM, Jason Gunthorpe wrote:
> On Fri, Nov 17, 2017 at 11:07:24AM +0100, Javier Martinez Canillas wrote:
>
>> This patch is an RFC because I'm not sure if this is the correct way to fix this
>> issue. I'm not that familiar with the TPM driver so may had missed some details.
>>
>> And example of user-space getting confused by the TPM chardev returning -EINVAL
>> when sending a not supported TPM command can be seen in this tpm2-tools issue:
>>
>> https://github.com/intel/tpm2-tools/issues/621
>
> I think this is a user space bug, unfortunately.
>
No worries, as mentioned I posted this RFC mostly to raise awareness of the
issue and to get feedback on how it could be properly solved.
> We talked about this when the spaces code was first written and it
> seemed the best was to just return EINVAL to indicate that the kernel
> could not accept the request.
>
> This result is semantically different from the TPM could not execute
> or complete the request.
>
Yes, the problem with that is user-space not having enough information about
what went wrong. Right now the TCTI layer just reports TSS2_BASE_RC_IO_ERROR
in this case and can't be blamed.
Maybe Philip can comment how this could be handled in user-space since he has
a much better understanding of the TCTI and SAPI layers.
> Regarding your specific issue, can you make the command you want to
> use validate? Would that make sense?
>
Sorry, I'm not sure to understand what you meant. Could you please elaborate?
Best regards,
--
Javier Martinez Canillas
Software Engineer - Desktop Hardware Enablement
Red Hat