summaryrefslogtreecommitdiffstats
path: root/drivers/i2c
diff options
context:
space:
mode:
authorJiri Kosina <jikos@jikos.cz>2006-12-10 21:21:30 +0100
committerJean Delvare <khali@arrakis.delvare>2006-12-10 21:21:30 +0100
commit6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7 (patch)
treec22887d242a0c3813789c63c4db2fd59b1f3ef7e /drivers/i2c
parenti2c: Cleanups to the i2c-nforce2 bus driver (diff)
downloadlinux-6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7.tar.xz
linux-6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7.zip
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>
Diffstat (limited to 'drivers/i2c')
-rw-r--r--drivers/i2c/i2c-core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 7ca81f42d14b..79eaa12474dd 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -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);