i2c-tegra: fix possible race condition after tx
In tegra_i2c_fill_tx_fifo, once we have finished pushing all the bytes to the I2C hardware controller, the interrupt might happen before we have updated i2c_dev->msg_buf_remaining at the end of the function. Then, in tegra_i2c_isr, we will call again tegra_i2c_fill_tx_fifo triggering weird behaviour. This has been shown to happen under real conditions. Signed-off-by: NDoug Anderson <dianders@chromium.org> Tested-by: NVincent Palatin <vpalatin@chromium.org> Acked-by: NRhyland Klein <rklein@nvidia.com> Acked-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
Showing
想要评论请 注册 或 登录