lkml.org 
[lkml]   [2019]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.18 089/104] tpm/tpm_i2c_atmel: Return -E2BIG when the transfer is incomplete
    Date
    commit 442601e87a4769a8daba4976ec3afa5222ca211d upstream

    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>
    Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
    Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/char/tpm/tpm_i2c_atmel.c | 10 +++++++++-
    1 file changed, 9 insertions(+), 1 deletion(-)

    diff --git a/drivers/char/tpm/tpm_i2c_atmel.c b/drivers/char/tpm/tpm_i2c_atmel.c
    index 503a85ae176c..0ea430cc606f 100644
    --- a/drivers/char/tpm/tpm_i2c_atmel.c
    +++ b/drivers/char/tpm/tpm_i2c_atmel.c
    @@ -65,7 +65,15 @@ static int i2c_atmel_send(struct tpm_chip *chip, u8 *buf, size_t len)
    dev_dbg(chip->dev,
    "%s(buf=%*ph len=%0zx) -> sts=%d\n", __func__,
    (int)min_t(size_t, 64, len), buf, len, status);
    - return status;
    +
    + if (status < 0)
    + return status;
    +
    + /* The upper layer does not support incomplete sends. */
    + if (status != len)
    + return -E2BIG;
    +
    + return 0;
    }

    static int i2c_atmel_recv(struct tpm_chip *chip, u8 *buf, size_t count)
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-04-24 19:14    [W:4.325 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site