diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-02 22:59:15 +0100 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-17 18:31:00 +0100 |
commit | 593f010bc0d8f7fde2ce948cac3f77f6a3d9db2b (patch) | |
tree | a8ceda9b2678714e5c2253e67dcab209e7ba60c0 /drivers/pcmcia/cs.c | |
parent | 3f32b3c093eddc03ed477ae0d7a6938db6b94a05 (diff) | |
download | linux-593f010bc0d8f7fde2ce948cac3f77f6a3d9db2b.tar.gz linux-593f010bc0d8f7fde2ce948cac3f77f6a3d9db2b.tar.bz2 linux-593f010bc0d8f7fde2ce948cac3f77f6a3d9db2b.zip |
pcmcia: do not lock socket driver module in pcmcia_get_socket()
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.
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/cs.c')
-rw-r--r-- | 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 9d8b9c1f5a69..f0630a61da90 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); |