diff --git a/drivers/i2c/busses/i2c-rk3x.c b/drivers/i2c/busses/i2c-rk3x.c index cdfc9d637dc1..e332167f2dc0 100644 --- a/drivers/i2c/busses/i2c-rk3x.c +++ b/drivers/i2c/busses/i2c-rk3x.c @@ -510,8 +510,10 @@ static irqreturn_t rk3x_i2c_irq(int irqno, void *dev_id) ipd &= ~REG_INT_NAKRCV; - if (!(i2c->msg->flags & I2C_M_IGNORE_NAK)) + if (!(i2c->msg->flags & I2C_M_IGNORE_NAK)) { rk3x_i2c_stop(i2c, -ENXIO); + goto out; + } } /* is there anything left to handle? */