summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorR Raj Kumar <rrajk@nvidia.com>2013-12-04 12:04:44 +0530
committerR Raj Kumar <rrajk@nvidia.com>2013-12-08 20:25:10 -0800
commitc6453cc7310a6907f633b168ff2f69ca4ddf25a7 (patch)
tree948fd8195d82de09452bb6ef3678cc533e4f1e8f
parent2fb25ac7fcdd5adfb42c53496124b375bc08b0e8 (diff)
PM: move device_pm_remove call before the calling bus_remove_device
We hit an hang issue when removing a sd device during suspend mode. This is may due to improper handling of acquired resources of device. By moving the device_pm_remove call in the device_del before calling bus_remove_device, fixed the hang issue. Bug 1393856 Change-Id: Ice8e8e62f96631166dfe630f2571817a6dd3308c Signed-off-by: R Raj Kumar <rrajk@nvidia.com> Reviewed-on: http://git-master/r/338118 Reviewed-by: Venu Byravarasu <vbyravarasu@nvidia.com>
-rw-r--r--drivers/base/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c
index 88bd6b57a62f..7cd7aec89cf6 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -1216,6 +1216,7 @@ void device_del(struct device *dev)
if (dev->bus)
blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
BUS_NOTIFY_DEL_DEVICE, dev);
+ device_pm_remove(dev);
dpm_sysfs_remove(dev);
if (parent)
klist_del(&dev->p->knode_parent);
@@ -1240,7 +1241,6 @@ void device_del(struct device *dev)
device_remove_file(dev, &uevent_attr);
device_remove_attrs(dev);
bus_remove_device(dev);
- device_pm_remove(dev);
driver_deferred_probe_del(dev);
/*