diff options
author | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-01-17 13:30:53 -0500 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2010-02-17 11:48:26 -0500 |
commit | af461fc1875b6ec18e23b5f670af36c4ed35c84e (patch) | |
tree | fa09a446c94d533c169b9e28e97c0e8c03d36912 /drivers/pcmcia/cistpl.c | |
parent | f971dbd5da4e2fbf756d07b938a9c65a9c75178b (diff) |
pcmcia: delay re-scanning and re-querying of PCMCIA bus
After a CIS update -- or the finalization of the resource database --,
proceed with the re-scanning or re-querying of PCMCIA cards only in
a separate thread to avoid deadlocks.
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/cistpl.c')
-rw-r--r-- | drivers/pcmcia/cistpl.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c index 14de287a8bf6..17a5da32cce1 100644 --- a/drivers/pcmcia/cistpl.c +++ b/drivers/pcmcia/cistpl.c | |||
@@ -1670,15 +1670,7 @@ static ssize_t pccard_store_cis(struct kobject *kobj, | |||
1670 | if (error) | 1670 | if (error) |
1671 | return -EIO; | 1671 | return -EIO; |
1672 | 1672 | ||
1673 | mutex_lock(&s->skt_mutex); | 1673 | pcmcia_parse_uevents(s, PCMCIA_UEVENT_REQUERY); |
1674 | if ((s->callback) && (s->state & SOCKET_PRESENT) && | ||
1675 | !(s->state & SOCKET_CARDBUS)) { | ||
1676 | if (try_module_get(s->callback->owner)) { | ||
1677 | s->callback->requery(s, 1); | ||
1678 | module_put(s->callback->owner); | ||
1679 | } | ||
1680 | } | ||
1681 | mutex_unlock(&s->skt_mutex); | ||
1682 | 1674 | ||
1683 | return count; | 1675 | return count; |
1684 | } | 1676 | } |