From 705390267622b14e596aec43fb672a528fdd8b03 Mon Sep 17 00:00:00 2001 From: Jiri Kosina Date: Sun, 10 Dec 2006 21:21:30 +0100 Subject: [PATCH] --- yaml --- r: 44340 b: refs/heads/master c: 6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/i2c/i2c-core.c | 2 +- trunk/include/linux/i2c.h | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8e49dbf9ec6d..6a53816ca82e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ad04d5c3879dcf79ba0fa1826eab991f7b7a2de8 +refs/heads/master: 6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7 diff --git a/trunk/drivers/i2c/i2c-core.c b/trunk/drivers/i2c/i2c-core.c index 7ca81f42d14b..79eaa12474dd 100644 --- a/trunk/drivers/i2c/i2c-core.c +++ b/trunk/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); diff --git a/trunk/include/linux/i2c.h b/trunk/include/linux/i2c.h index 9b5d04768c2c..08df4169b411 100644 --- a/trunk/include/linux/i2c.h +++ b/trunk/include/linux/i2c.h @@ -216,6 +216,7 @@ struct i2c_adapter { int (*client_unregister)(struct i2c_client *); /* data fields that are valid for all devices */ + u8 level; /* nesting level for lockdep */ struct mutex bus_lock; struct mutex clist_lock;