On 2/8/19 11:30 AM, Jarkko Sakkinen wrote:
static void tpm_nsc_cancel(struct tpm_chip *chip) diff --git a/drivers/char/tpm/tpm_tis_core.c b/drivers/char/tpm/tpm_tis_core.c index 60e2038652b8..1d781c19f112 100644 --- a/drivers/char/tpm/tpm_tis_core.c +++ b/drivers/char/tpm/tpm_tis_core.c @@ -507,7 +507,11 @@ static int tpm_tis_send(struct tpm_chip *chip, u8 *buf, size_t len) if (!priv->irq_tested) disable_interrupts(chip); priv->irq_tested = true; - return rc; + + if (rc < 0) + return rc; + + return 0; }
That's not all... There's this above it as well with tpm_tis_send_main returning with 'return len;'.
if (!(chip->flags & TPM_CHIP_FLAG_IRQ) || priv->irq_tested) return tpm_tis_send_main(chip, buf, len);