4.4-stable review patch. If anyone has any objections, please let me know.
------------------ From: Sricharan R <[email protected]> commit d4f56c7773483b8829e89cfc739b7a5a071f6da0 upstream. index gets incremented during check to determine if the messages can be transferred with dma. But not reset after that, resulting in wrong start value in subsequent loop, causing failure. Fix it. Signed-off-by: Sricharan R <[email protected]> Signed-off-by: Wolfram Sang <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> --- drivers/i2c/busses/i2c-qup.c | 2 ++ 1 file changed, 2 insertions(+) --- a/drivers/i2c/busses/i2c-qup.c +++ b/drivers/i2c/busses/i2c-qup.c @@ -435,6 +435,8 @@ static int qup_i2c_read_one(struct qup_i if (ret) goto err; + idx = 0; + do { left = wait_for_completion_timeout(&qup->xfer, HZ); if (!left) {

