aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/atmel_cs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/atmel_cs.c')
-rw-r--r--drivers/net/wireless/atmel_cs.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/drivers/net/wireless/atmel_cs.c b/drivers/net/wireless/atmel_cs.c
index 3ab33dd49ea2..32f009709355 100644
--- a/drivers/net/wireless/atmel_cs.c
+++ b/drivers/net/wireless/atmel_cs.c
@@ -130,15 +130,7 @@ static dev_info_t dev_info = "atmel_cs";
130 device numbers are used to derive the corresponding array index. 130 device numbers are used to derive the corresponding array index.
131*/ 131*/
132 132
133static dev_link_t *dev_list = NULL;
134
135/* 133/*
136 A dev_link_t structure has fields for most things that are needed
137 to keep track of a socket, but there will usually be some device
138 specific information that also needs to be kept track of. The
139 'priv' pointer in a dev_link_t structure can be used to point to
140 a device-specific private data structure, like this.
141
142 A driver needs to provide a dev_node_t structure for each device 134 A driver needs to provide a dev_node_t structure for each device
143 on a card. In some cases, there is only one device per card (for 135 on a card. In some cases, there is only one device per card (for
144 example, ethernet cards, modems). In other cases, there may be 136 example, ethernet cards, modems). In other cases, there may be
@@ -213,8 +205,7 @@ static dev_link_t *atmel_attach(void)
213 link->priv = local; 205 link->priv = local;
214 206
215 /* Register with Card Services */ 207 /* Register with Card Services */
216 link->next = dev_list; 208 link->next = NULL;
217 dev_list = link;
218 client_reg.dev_info = &dev_info; 209 client_reg.dev_info = &dev_info;
219 client_reg.Version = 0x0210; 210 client_reg.Version = 0x0210;
220 client_reg.event_callback_args.client_data = link; 211 client_reg.event_callback_args.client_data = link;
@@ -240,21 +231,12 @@ static dev_link_t *atmel_attach(void)
240static void atmel_detach(struct pcmcia_device *p_dev) 231static void atmel_detach(struct pcmcia_device *p_dev)
241{ 232{
242 dev_link_t *link = dev_to_instance(p_dev); 233 dev_link_t *link = dev_to_instance(p_dev);
243 dev_link_t **linkp; 234
244
245 DEBUG(0, "atmel_detach(0x%p)\n", link); 235 DEBUG(0, "atmel_detach(0x%p)\n", link);
246
247 /* Locate device structure */
248 for (linkp = &dev_list; *linkp; linkp = &(*linkp)->next)
249 if (*linkp == link) break;
250 if (*linkp == NULL)
251 return;
252 236
253 if (link->state & DEV_CONFIG) 237 if (link->state & DEV_CONFIG)
254 atmel_release(link); 238 atmel_release(link);
255 239
256 /* Unlink device structure, free pieces */
257 *linkp = link->next;
258 kfree(link->priv); 240 kfree(link->priv);
259 kfree(link); 241 kfree(link);
260} 242}
@@ -596,7 +578,6 @@ static int atmel_cs_init(void)
596static void atmel_cs_cleanup(void) 578static void atmel_cs_cleanup(void)
597{ 579{
598 pcmcia_unregister_driver(&atmel_driver); 580 pcmcia_unregister_driver(&atmel_driver);
599 BUG_ON(dev_list != NULL);
600} 581}
601 582
602/* 583/*