]> www.infradead.org Git - users/hch/misc.git/commitdiff
i2c: testunit: discard write requests while old command is running
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 27 Jun 2024 11:14:48 +0000 (13:14 +0200)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Fri, 28 Jun 2024 18:44:38 +0000 (20:44 +0200)
When clearing registers on new write requests was added, the protection
for currently running commands was missed leading to concurrent access
to the testunit registers. Check the flag beforehand.

Fixes: b39ab96aa894 ("i2c: testunit: add support for block process calls")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/i2c-slave-testunit.c

index a5dcbc3c2c141a70ea6ac5d5df9df7a4cf002244..ca43e98cae1b22069e9080d325c4e1f23b9a8ee2 100644 (file)
@@ -121,6 +121,9 @@ static int i2c_slave_testunit_slave_cb(struct i2c_client *client,
                break;
 
        case I2C_SLAVE_WRITE_REQUESTED:
+               if (test_bit(TU_FLAG_IN_PROCESS, &tu->flags))
+                       return -EBUSY;
+
                memset(tu->regs, 0, TU_NUM_REGS);
                tu->reg_idx = 0;
                break;