Add pcmcia_{put,get}_socket Signed-off-by: Dominik Brodowski Index: 2.6.10-rc3/drivers/pcmcia/cs.c =================================================================== --- 2.6.10-rc3.orig/drivers/pcmcia/cs.c 2004-12-05 10:26:01.026448160 +0100 +++ 2.6.10-rc3/drivers/pcmcia/cs.c 2004-12-05 10:26:01.538370336 +0100 @@ -172,6 +172,29 @@ EXPORT_SYMBOL(pcmcia_socket_dev_resume); +struct pcmcia_socket * pcmcia_get_socket(struct pcmcia_socket *skt) +{ + struct class_device *cl_dev = class_device_get(&skt->dev); + if (!cl_dev) + return NULL; + skt = class_get_devdata(cl_dev); + if (!try_module_get(skt->owner)) { + class_device_put(&skt->dev); + return NULL; + } + return (skt); +} +EXPORT_SYMBOL(pcmcia_get_socket); + + +void pcmcia_put_socket(struct pcmcia_socket *skt) +{ + module_put(skt->owner); + class_device_put(&skt->dev); +} +EXPORT_SYMBOL(pcmcia_put_socket); + + static void pcmcia_release_socket(struct class_device *class_dev) { struct pcmcia_socket *socket = class_get_devdata(class_dev); Index: 2.6.10-rc3/include/pcmcia/cs.h =================================================================== --- 2.6.10-rc3.orig/include/pcmcia/cs.h 2004-12-05 10:26:01.042445728 +0100 +++ 2.6.10-rc3/include/pcmcia/cs.h 2004-12-05 10:26:01.539370184 +0100 @@ -426,6 +426,9 @@ int pcmcia_set_event_mask(client_handle_t handle, eventmask_t *mask); #endif +struct pcmcia_socket * pcmcia_get_socket(struct pcmcia_socket *skt); +void pcmcia_put_socket(struct pcmcia_socket *skt); + #endif /* __KERNEL__ */ #endif /* _LINUX_CS_H */