>     3. It seems the I2C core takes care of locking already, so is it safy to > remove "struct mutex lock in struct virtio_i2c"? Looks to me like the mutex is only to serialize calls to virtio_i2c_xfer(). Then, it can go. The core does locking. See, we have i2c_transfer and __i2c_transfer, the unlocked version.