aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/capi/kcapi.h
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@web.de>2010-02-08 05:12:14 -0500
committerDavid S. Miller <davem@davemloft.net>2010-02-16 19:01:22 -0500
commit0ca3a017a7373a4545dd7b345a8a0cecc16bc7e2 (patch)
treea739bfb8ddd0c7fcfdcd40ab6fcd990570c716bf /drivers/isdn/capi/kcapi.h
parentef69bb2ec6036945da1d3d3f07b75253f484f693 (diff)
CAPI: Rework locking of controller data structures
This patch applies the mutex so far only protecting the controller list to (almost) all accesses of controller data structures. It also reworks waiting on state changes in old_capi_manufacturer so that it no longer poll and holds a module reference to the controller owner while waiting (the latter was partly done already). Modification and checking of the blocked state remains racy by design, the caller is responsible for dealing with this. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn/capi/kcapi.h')
-rw-r--r--drivers/isdn/capi/kcapi.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/isdn/capi/kcapi.h b/drivers/isdn/capi/kcapi.h
index 07c58500fe48..f4620b38ec51 100644
--- a/drivers/isdn/capi/kcapi.h
+++ b/drivers/isdn/capi/kcapi.h
@@ -24,6 +24,7 @@ printk(KERN_DEBUG "%s: " format "\n" , __func__ , ## arg); \
24#endif 24#endif
25 25
26enum { 26enum {
27 CAPI_CTR_DETACHED = 0,
27 CAPI_CTR_DETECTED = 1, 28 CAPI_CTR_DETECTED = 1,
28 CAPI_CTR_LOADING = 2, 29 CAPI_CTR_LOADING = 2,
29 CAPI_CTR_RUNNING = 3, 30 CAPI_CTR_RUNNING = 3,
@@ -32,8 +33,10 @@ enum {
32extern struct list_head capi_drivers; 33extern struct list_head capi_drivers;
33extern struct mutex capi_drivers_lock; 34extern struct mutex capi_drivers_lock;
34 35
35extern struct capi20_appl *capi_applications[CAPI_MAXAPPL];
36extern struct capi_ctr *capi_controller[CAPI_MAXCONTR]; 36extern struct capi_ctr *capi_controller[CAPI_MAXCONTR];
37extern struct mutex capi_controller_lock;
38
39extern struct capi20_appl *capi_applications[CAPI_MAXAPPL];
37 40
38#ifdef CONFIG_PROC_FS 41#ifdef CONFIG_PROC_FS
39 42