diff options
author | Adam Belay <ambx1@neo.rr.com> | 2006-02-28 19:59:10 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-28 23:53:43 -0500 |
commit | 8b613e1ccf1b7ac9acc73eaa07f5aeffd3c2bb8d (patch) | |
tree | e4e686791cc9cca374ff5506b58be1dee7a6a451 /drivers/pnp/card.c | |
parent | 15b370c95cbc1553eec30a99a5ffb3ac3c8d7b81 (diff) |
[PATCH] pnp bus type fix
This is Adam's pnp probing fix. It's been reported to fix hangs on several
people's machines. I don't know if it's official or final, and Adam isn't
contactable at present. But I'm not aware of the patch causing any
regressions.
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pnp/card.c')
-rw-r--r-- | drivers/pnp/card.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/pnp/card.c b/drivers/pnp/card.c index aaa568a3806e..b68eef251614 100644 --- a/drivers/pnp/card.c +++ b/drivers/pnp/card.c | |||
@@ -303,13 +303,11 @@ found: | |||
303 | down_write(&dev->dev.bus->subsys.rwsem); | 303 | down_write(&dev->dev.bus->subsys.rwsem); |
304 | dev->card_link = clink; | 304 | dev->card_link = clink; |
305 | dev->dev.driver = &drv->link.driver; | 305 | dev->dev.driver = &drv->link.driver; |
306 | if (drv->link.driver.probe) { | 306 | if (pnp_bus_type.probe(&dev->dev)) { |
307 | if (drv->link.driver.probe(&dev->dev)) { | 307 | dev->dev.driver = NULL; |
308 | dev->dev.driver = NULL; | 308 | dev->card_link = NULL; |
309 | dev->card_link = NULL; | 309 | up_write(&dev->dev.bus->subsys.rwsem); |
310 | up_write(&dev->dev.bus->subsys.rwsem); | 310 | return NULL; |
311 | return NULL; | ||
312 | } | ||
313 | } | 311 | } |
314 | device_bind_driver(&dev->dev); | 312 | device_bind_driver(&dev->dev); |
315 | up_write(&dev->dev.bus->subsys.rwsem); | 313 | up_write(&dev->dev.bus->subsys.rwsem); |