For SMBUS block read, do not continue to read if the message length passed from the device is '0'. Signed-off-by: Akhil R <akhilrajeev@xxxxxxxxxx> --- drivers/i2c/busses/i2c-tegra.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 87976e99e6d0..273d6aaa427b 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -1393,7 +1393,7 @@ static int tegra_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], /* If M_RECV_LEN use ContinueXfer to read the first byte */ if (msgs[i].flags & I2C_M_RECV_LEN) { ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], MSG_END_CONTINUE); - if (ret) + if (ret || msgs[i].buf[0] == 0) break; /* Set the msg length from first byte */ msgs[i].len += msgs[i].buf[0]; -- 2.43.2