diff options
Diffstat (limited to 'drivers/scsi/pcmcia/qlogic_stub.c')
-rw-r--r-- | drivers/scsi/pcmcia/qlogic_stub.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c index 8351dc234ffb..e10281a6e5f9 100644 --- a/drivers/scsi/pcmcia/qlogic_stub.c +++ b/drivers/scsi/pcmcia/qlogic_stub.c | |||
@@ -104,8 +104,6 @@ static dev_link_t *qlogic_attach(void); | |||
104 | static void qlogic_detach(struct pcmcia_device *p_dev); | 104 | static void qlogic_detach(struct pcmcia_device *p_dev); |
105 | 105 | ||
106 | 106 | ||
107 | static dev_link_t *dev_list = NULL; | ||
108 | |||
109 | static dev_info_t dev_info = "qlogic_cs"; | 107 | static dev_info_t dev_info = "qlogic_cs"; |
110 | 108 | ||
111 | static struct Scsi_Host *qlogic_detect(struct scsi_host_template *host, | 109 | static struct Scsi_Host *qlogic_detect(struct scsi_host_template *host, |
@@ -190,8 +188,7 @@ static dev_link_t *qlogic_attach(void) | |||
190 | link->conf.Present = PRESENT_OPTION; | 188 | link->conf.Present = PRESENT_OPTION; |
191 | 189 | ||
192 | /* Register with Card Services */ | 190 | /* Register with Card Services */ |
193 | link->next = dev_list; | 191 | link->next = NULL; |
194 | dev_list = link; | ||
195 | client_reg.dev_info = &dev_info; | 192 | client_reg.dev_info = &dev_info; |
196 | client_reg.Version = 0x0210; | 193 | client_reg.Version = 0x0210; |
197 | client_reg.event_callback_args.client_data = link; | 194 | client_reg.event_callback_args.client_data = link; |
@@ -210,22 +207,12 @@ static dev_link_t *qlogic_attach(void) | |||
210 | static void qlogic_detach(struct pcmcia_device *p_dev) | 207 | static void qlogic_detach(struct pcmcia_device *p_dev) |
211 | { | 208 | { |
212 | dev_link_t *link = dev_to_instance(p_dev); | 209 | dev_link_t *link = dev_to_instance(p_dev); |
213 | dev_link_t **linkp; | ||
214 | 210 | ||
215 | DEBUG(0, "qlogic_detach(0x%p)\n", link); | 211 | DEBUG(0, "qlogic_detach(0x%p)\n", link); |
216 | 212 | ||
217 | /* Locate device structure */ | ||
218 | for (linkp = &dev_list; *linkp; linkp = &(*linkp)->next) | ||
219 | if (*linkp == link) | ||
220 | break; | ||
221 | if (*linkp == NULL) | ||
222 | return; | ||
223 | |||
224 | if (link->state & DEV_CONFIG) | 213 | if (link->state & DEV_CONFIG) |
225 | qlogic_release(link); | 214 | qlogic_release(link); |
226 | 215 | ||
227 | /* Unlink device structure, free bits */ | ||
228 | *linkp = link->next; | ||
229 | kfree(link->priv); | 216 | kfree(link->priv); |
230 | 217 | ||
231 | } /* qlogic_detach */ | 218 | } /* qlogic_detach */ |
@@ -439,7 +426,6 @@ static int __init init_qlogic_cs(void) | |||
439 | static void __exit exit_qlogic_cs(void) | 426 | static void __exit exit_qlogic_cs(void) |
440 | { | 427 | { |
441 | pcmcia_unregister_driver(&qlogic_cs_driver); | 428 | pcmcia_unregister_driver(&qlogic_cs_driver); |
442 | BUG_ON(dev_list != NULL); | ||
443 | } | 429 | } |
444 | 430 | ||
445 | MODULE_AUTHOR("Tom Zerucha, Michael Griffith"); | 431 | MODULE_AUTHOR("Tom Zerucha, Michael Griffith"); |