tpm: Unify the send callback behaviour
The send() callback should never return length as it does not in every driver except tpm_crb in the success case. The reason is that the main transmit functionality only cares about whether the transmit was successful or not and ignores the count completely. Suggested-by: Stefan Berger <stefanb@linux.ibm.com> Cc: stable@vger.kernel.org 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> Tested-by: Alexander Steffen <Alexander.Steffen@infineon.com>
This commit is contained in:
@@ -230,10 +230,19 @@ static ssize_t tpm_try_transmit(struct tpm_chip *chip,
|
||||
if (rc < 0) {
|
||||
if (rc != -EPIPE)
|
||||
dev_err(&chip->dev,
|
||||
"%s: tpm_send: error %d\n", __func__, rc);
|
||||
"%s: send(): error %d\n", __func__, rc);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* A sanity check. send() should just return zero on success e.g.
|
||||
* not the command length.
|
||||
*/
|
||||
if (rc > 0) {
|
||||
dev_warn(&chip->dev,
|
||||
"%s: send(): invalid value %d\n", __func__, rc);
|
||||
rc = 0;
|
||||
}
|
||||
|
||||
if (chip->flags & TPM_CHIP_FLAG_IRQ)
|
||||
goto out_recv;
|
||||
|
||||
|
Reference in New Issue
Block a user