mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
tpm: st33zp24: Fix missing cleanup on get_burstcount() error
get_burstcount() can return -EBUSY on timeout. When this happens,
st33zp24_send() returns directly without releasing the locality
acquired earlier.
Use goto out_err to ensure proper cleanup when get_burstcount() fails.
Fixes: bf38b87108 ("tpm/tpm_i2c_stm_st33: Split tpm_i2c_tpm_st33 in 2 layers (core + phy)")
Signed-off-by: Alper Ak <alperyasinak1@gmail.com>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
This commit is contained in:
committed by
Jarkko Sakkinen
parent
bbd6e97c83
commit
3e91b44c93
@@ -328,8 +328,10 @@ static int st33zp24_send(struct tpm_chip *chip, unsigned char *buf,
|
||||
|
||||
for (i = 0; i < len - 1;) {
|
||||
burstcnt = get_burstcount(chip);
|
||||
if (burstcnt < 0)
|
||||
return burstcnt;
|
||||
if (burstcnt < 0) {
|
||||
ret = burstcnt;
|
||||
goto out_err;
|
||||
}
|
||||
size = min_t(int, len - i - 1, burstcnt);
|
||||
ret = tpm_dev->ops->send(tpm_dev->phy_id, TPM_DATA_FIFO,
|
||||
buf + i, size);
|
||||
|
||||
Reference in New Issue
Block a user