summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJean Delvare <khali@linux-fr.org>2010-05-04 11:09:28 +0200
committerJean Delvare <khali@linux-fr.org>2010-05-04 11:09:28 +0200
commit6629dcff19470a894ce294d0adb9cbab94ee1fb9 (patch)
tree18f75a3f5ca83de96a0fe353fafa02bab174cd36 /include
parentb1d4b390ea4bb480e65974ce522a04022608a8df (diff)
downloadlinux-6629dcff19470a894ce294d0adb9cbab94ee1fb9.tar.gz
linux-6629dcff19470a894ce294d0adb9cbab94ee1fb9.tar.bz2
linux-6629dcff19470a894ce294d0adb9cbab94ee1fb9.zip
i2c-core: Use per-adapter userspace device lists
Using a single list for all userspace devices leads to a dead lock on multiplexed buses in some circumstances (mux chip instantiated from userspace). This is solved by using a separate list for each bus segment. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Michael Lawnick <ml.lawnick@gmx.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/i2c.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 0a5da639b327..6ed1d59bfb1e 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -355,6 +355,8 @@ struct i2c_adapter {
int nr;
char name[48];
struct completion dev_released;
+
+ struct list_head userspace_clients;
};
#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)