aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
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 /include/linux
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 'include/linux')
-rw-r--r--include/linux/isdn/capilli.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/isdn/capilli.h b/include/linux/isdn/capilli.h
index 856f38eddd78..11b57c485854 100644
--- a/include/linux/isdn/capilli.h
+++ b/include/linux/isdn/capilli.h
@@ -66,9 +66,10 @@ struct capi_ctr {
66 unsigned long nsentdatapkt; 66 unsigned long nsentdatapkt;
67 67
68 int cnr; /* controller number */ 68 int cnr; /* controller number */
69 volatile unsigned short state; /* controller state */ 69 unsigned short state; /* controller state */
70 volatile int blocked; /* output blocked */ 70 int blocked; /* output blocked */
71 int traceflag; /* capi trace */ 71 int traceflag; /* capi trace */
72 wait_queue_head_t state_wait_queue;
72 73
73 struct proc_dir_entry *procent; 74 struct proc_dir_entry *procent;
74 char procfn[128]; 75 char procfn[128];