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;
}