aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorPatrick Pannuto <ppannuto@codeaurora.org>2010-08-06 20:12:41 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-22 13:16:42 -0400
commitd79d32440c33cf60f1e0efbeb8144b1647be0b50 (patch)
tree31b9ff92f2f0c9c50e21427ac7d69185b6789f0f /drivers/base
parent6a5c083de2f5fbf89a4b0a251be2c2205434d7ea (diff)
driver core: platform: Use drv->driver.bus instead of assuming platform_bus_type
In theory (although not *yet* in practice), a driver being passed to platform_driver_probe might have driver.bus set to something other than platform_bus_type. Locking drv->driver.bus is always correct. Signed-off-by: Patrick Pannuto <ppannuto@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/platform.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index c6c933f58102..579906f88b09 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -488,12 +488,12 @@ int __init_or_module platform_driver_probe(struct platform_driver *drv,
488 * if the probe was successful, and make sure any forced probes of 488 * if the probe was successful, and make sure any forced probes of
489 * new devices fail. 489 * new devices fail.
490 */ 490 */
491 spin_lock(&platform_bus_type.p->klist_drivers.k_lock); 491 spin_lock(&drv->driver.bus->p->klist_drivers.k_lock);
492 drv->probe = NULL; 492 drv->probe = NULL;
493 if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list)) 493 if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list))
494 retval = -ENODEV; 494 retval = -ENODEV;
495 drv->driver.probe = platform_drv_probe_fail; 495 drv->driver.probe = platform_drv_probe_fail;
496 spin_unlock(&platform_bus_type.p->klist_drivers.k_lock); 496 spin_unlock(&drv->driver.bus->p->klist_drivers.k_lock);
497 497
498 if (code != retval) 498 if (code != retval)
499 platform_driver_unregister(drv); 499 platform_driver_unregister(drv);