i2c: Add support for nested i2c bus locking
This patch adds the 'level' field into the i2c_adapter structure, which is used to represent the 'logical' level of nesting for the purposes of lockdep. This field is then used in the i2c_transfer() function, to acquire the per-adapter bus_lock with correct nesting level. Signed-off-by: Jiri Kosina <jikos@jikos.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
committed by
Jean Delvare
parent
ad04d5c387
commit
6ea23039cb
@@ -603,7 +603,7 @@ int i2c_transfer(struct i2c_adapter * adap, struct i2c_msg *msgs, int num)
|
||||
}
|
||||
#endif
|
||||
|
||||
mutex_lock(&adap->bus_lock);
|
||||
mutex_lock_nested(&adap->bus_lock, adap->level);
|
||||
ret = adap->algo->master_xfer(adap,msgs,num);
|
||||
mutex_unlock(&adap->bus_lock);
|
||||
|
||||
|
Reference in New Issue
Block a user