i2c: xiic: Fix RX IRQ busy check
[ Upstream commit 294b29f15469e90893c2b72a738a962ee02a12eb ] In case the XIIC does TX/RX transfer, make sure no other kernel thread can start another TX transfer at the same time. This could happen since the driver only checks tx_msg for being non-NULL and returns -EBUSY in that case, however it is necessary to check also rx_msg for the same. Signed-off-by: Marek Vasut <marex@denx.de> Acked-by: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Wolfram Sang <wsa@kernel.org> Stable-dep-of: 1d4a1adbed25 ("i2c: xiic: Try re-initialization on bus busy timeout") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
30def367fa
commit
148fdc3c7d
@ -545,7 +545,7 @@ static int xiic_busy(struct xiic_i2c *i2c)
|
||||
int tries = 3;
|
||||
int err;
|
||||
|
||||
if (i2c->tx_msg)
|
||||
if (i2c->tx_msg || i2c->rx_msg)
|
||||
return -EBUSY;
|
||||
|
||||
/* In single master mode bus can only be busy, when in use by this
|
||||
|
Loading…
Reference in New Issue
Block a user