diff options
author | R Raj Kumar <rrajk@nvidia.com> | 2013-12-04 12:04:44 +0530 |
---|---|---|
committer | R Raj Kumar <rrajk@nvidia.com> | 2013-12-08 20:25:10 -0800 |
commit | c6453cc7310a6907f633b168ff2f69ca4ddf25a7 (patch) | |
tree | 948fd8195d82de09452bb6ef3678cc533e4f1e8f /drivers/base | |
parent | 2fb25ac7fcdd5adfb42c53496124b375bc08b0e8 (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>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/core.c | 2 |
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); /* |