mirror of https://gitee.com/openkylin/linux.git
rtc: hym8563: fix a missing check of block data read
When i2c_smbus_read_i2c_block_data() fails, the read data in "buf" could be incorrect and should not be used. The fix checks if i2c_smbus_read_i2c_block_data fails, and if so, return its error code upstream. Signed-off-by: Kangjie Lu <kjlu@umn.edu> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
5910fa0d0d
commit
9a20b5e35a
|
@ -109,6 +109,8 @@ static int hym8563_rtc_read_time(struct device *dev, struct rtc_time *tm)
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = i2c_smbus_read_i2c_block_data(client, HYM8563_SEC, 7, buf);
|
ret = i2c_smbus_read_i2c_block_data(client, HYM8563_SEC, 7, buf);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
tm->tm_sec = bcd2bin(buf[0] & HYM8563_SEC_MASK);
|
tm->tm_sec = bcd2bin(buf[0] & HYM8563_SEC_MASK);
|
||||||
tm->tm_min = bcd2bin(buf[1] & HYM8563_MIN_MASK);
|
tm->tm_min = bcd2bin(buf[1] & HYM8563_MIN_MASK);
|
||||||
|
|
Loading…
Reference in New Issue