summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2005-08-18 13:16:11 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2005-08-18 17:43:59 +0200
commit30d5b64b63fa69af31b2cba32e6d71d68526eec9 (patch)
tree16b55bd8beb2b56b459db5ef100b881243597f7a /drivers
parent[PATCH] Fix manual binding infinite loop (diff)
downloadlinux-30d5b64b63fa69af31b2cba32e6d71d68526eec9.tar.xz
linux-30d5b64b63fa69af31b2cba32e6d71d68526eec9.zip
[PATCH] broken error path in drivers/pnp/card.c
The error path in pnp_request_card_device() is broken (one variable is left initialized and the semaphore is not unlocked). This fixes it (and has been tested). Signed-off-by: Jaroslav Kysela <perex@suse.cz> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pnp/card.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c
index add12f7c489a..6e5229e92fbc 100644
--- a/drivers/pnp/card.c
+++ b/drivers/pnp/card.c
@@ -312,6 +312,8 @@ found:
if (drv->link.driver.probe) {
if (drv->link.driver.probe(&dev->dev)) {
dev->dev.driver = NULL;
+ dev->card_link = NULL;
+ up_write(&dev->dev.bus->subsys.rwsem);
return NULL;
}
}