Do not lock the socket driver module in pcmcia_get_socket(), as
the PCMCIA core can handle a socket module removal: In
pcmcia_unregister_socket(), we explicitely wait for the last
put_device() to succeed.

Signed-off-by: Dominik Brodowski <li...@dominikbrodowski.net>
---
 drivers/pcmcia/cs.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)

diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c
index 13ca458..800fa88 100644
--- a/drivers/pcmcia/cs.c
+++ b/drivers/pcmcia/cs.c
@@ -140,19 +140,13 @@ struct pcmcia_socket *pcmcia_get_socket(struct 
pcmcia_socket *skt)
        struct device *dev = get_device(&skt->dev);
        if (!dev)
                return NULL;
-       skt = dev_get_drvdata(dev);
-       if (!try_module_get(skt->owner)) {
-               put_device(&skt->dev);
-               return NULL;
-       }
-       return skt;
+       return dev_get_drvdata(dev);
 }
 EXPORT_SYMBOL(pcmcia_get_socket);
 
 
 void pcmcia_put_socket(struct pcmcia_socket *skt)
 {
-       module_put(skt->owner);
        put_device(&skt->dev);
 }
 EXPORT_SYMBOL(pcmcia_put_socket);
-- 
1.6.3.3


_______________________________________________
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia

Reply via email to