]> git.baikalelectronics.ru Git - kernel.git/commit
tpm/tpm_i2c_stm_st33: Check return code of get_burstcount
authorPeter Huewe <PeterHuewe@gmx.de>
Tue, 29 Oct 2013 23:54:20 +0000 (00:54 +0100)
committerPeter Huewe <peterhuewe@gmx.de>
Mon, 6 Jan 2014 13:37:24 +0000 (14:37 +0100)
commit0e9428bbb58bfa51ad1939eb8a9b5bff2f7b4d0f
treef3f18600d88694e7fd9d38b8aaf810a551b53685
parent411c4bff04faf3fbb8e7847a5d3ca0a2b5ae2473
tpm/tpm_i2c_stm_st33: Check return code of get_burstcount

The 'get_burstcount' function can in some circumstances 'return -EBUSY' which
in tpm_stm_i2c_send is stored in an 'u32 burstcnt'
thus converting the signed value into an unsigned value, resulting
in 'burstcnt' being huge.
Changing the type to u32 only does not solve the problem as the signed
value is converted to an unsigned in I2C_WRITE_DATA, resulting in the
same effect.

Thus
-> Change type of burstcnt to u32 (the return type of get_burstcount)
-> Add a check for the return value of 'get_burstcount' and propagate a
potential error.

This makes also sense in the 'I2C_READ_DATA' case, where the there is no
signed/unsigned conversion.

found by coverity
Cc: stable@vger.kernel.org
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
drivers/char/tpm/tpm_i2c_stm_st33.c