aboutsummaryrefslogtreecommitdiffstats
path: root/include/pcmcia
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-01-16 03:14:11 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2010-02-17 11:48:20 -0500
commit00ce99ff506a17882747a7d6874e3f5206a99043 (patch)
tree571f5b106f25f35f326d456123c4af85147c3bce /include/pcmcia
parent3d3de32fad19e37695e6649136e4cb17f9d46329 (diff)
pcmcia: simplify locking
replace pcmcia_socket->lock and pcmcia_dev_list_lock by using the per-socket "ops_mutex", as we do neither need different locks nor a spinlock here. Tested-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'include/pcmcia')
-rw-r--r--include/pcmcia/ss.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index e756069859b5..cfaccc224b50 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -134,7 +134,6 @@ struct pccard_operations {
134 134
135struct pcmcia_socket { 135struct pcmcia_socket {
136 struct module *owner; 136 struct module *owner;
137 spinlock_t lock;
138 socket_state_t socket; 137 socket_state_t socket;
139 u_int state; 138 u_int state;
140 u_int suspended_state; /* state before suspend */ 139 u_int suspended_state; /* state before suspend */
@@ -201,10 +200,12 @@ struct pcmcia_socket {
201 struct task_struct *thread; 200 struct task_struct *thread;
202 struct completion thread_done; 201 struct completion thread_done;
203 unsigned int thread_events; 202 unsigned int thread_events;
204 /* protects socket h/w state */ 203
204 /* For the non-trivial interaction between these locks,
205 * see Documentation/pcmcia/locking.txt */
205 struct mutex skt_mutex; 206 struct mutex skt_mutex;
206 /* protects PCMCIA state */
207 struct mutex ops_mutex; 207 struct mutex ops_mutex;
208
208 /* protects thread_events */ 209 /* protects thread_events */
209 spinlock_t thread_lock; 210 spinlock_t thread_lock;
210 211