[v3,2/2] tpm/tpm_i2c_atmel: Return -E2BIG when the transfer is incomplete
diff mbox series

Message ID 20190208163059.640-3-jarkko.sakkinen@linux.intel.com
State New
Headers show
Series
  • tpm: Unify send() callbacks
Related show

Commit Message

Jarkko Sakkinen Feb. 8, 2019, 4:30 p.m. UTC
Return -E2BIG when the transfer is incomplete. The upper layer does
not retry, so not doing that is incorrect behaviour.

Cc: stable@vger.kernel.org
Fixes: a2871c62e186 ("tpm: Add support for Atmel I2C TPMs")
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
---
 drivers/char/tpm/tpm_i2c_atmel.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Stefan Berger Feb. 8, 2019, 4:48 p.m. UTC | #1
On 2/8/19 11:30 AM, Jarkko Sakkinen wrote:
> Return -E2BIG when the transfer is incomplete. The upper layer does
> not retry, so not doing that is incorrect behaviour.
>
> Cc: stable@vger.kernel.org
> Fixes: a2871c62e186 ("tpm: Add support for Atmel I2C TPMs")
> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> ---
>   drivers/char/tpm/tpm_i2c_atmel.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c
> index aa11c8a1df5e..8a7e80923091 100644
> --- a/drivers/char/tpm/tpm_i2c_atmel.c
> +++ b/drivers/char/tpm/tpm_i2c_atmel.c
> @@ -69,6 +69,10 @@ static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
>   	if (status < 0)
>   		return status;
>
> +	/* The upper layer does not support incomplete sends. */
> +	if (status != len)
> +		return -E2BIG;
> +
>   	return 0;
>   }
>
Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>

Patch
diff mbox series

diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c
index aa11c8a1df5e..8a7e80923091 100644
--- a/drivers/char/tpm/tpm_i2c_atmel.c
+++ b/drivers/char/tpm/tpm_i2c_atmel.c
@@ -69,6 +69,10 @@  static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
 	if (status < 0)
 		return status;
 
+	/* The upper layer does not support incomplete sends. */
+	if (status != len)
+		return -E2BIG;
+
 	return 0;
 }