From: Marek Vasut Date: Mon, 23 Aug 2021 21:41:45 +0000 (+0200) Subject: i2c: xiic: Fix RX IRQ busy check X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=294b29f15469e90893c2b72a738a962ee02a12eb;p=linux.git i2c: xiic: Fix RX IRQ busy check 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 Acked-by: Michal Simek Signed-off-by: Wolfram Sang --- diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c index 6cd7830fe4898..eb789cfb99739 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c @@ -543,7 +543,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