Ulf Hansson
a0504aecba
PM / runtime: Drop usage count for suppliers at device link removal
...
In the case consumer device is runtime resumed, while the link to the
supplier is removed, the earlier call to pm_runtime_get_sync() made from
rpm_get_suppliers() does not get properly balanced with a corresponding
call to pm_runtime_put(). This leads to that suppliers remains to be
runtime resumed forever, while they don't need to.
Let's fix the behaviour by calling rpm_put_suppliers() when dropping a
device link. Not that, since rpm_put_suppliers() checks the
link->rpm_active flag, we can correctly avoid to call pm_runtime_put() in
cases when we shouldn't.
Reported-by: Todor Tomov <todor.tomov@linaro.org>
Fixes: 21d5c57b37 (PM / runtime: Use device links)
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-05-27 12:18:55 +02:00
..
firmware_loader
firmware: some documentation fixes
2018-04-25 18:37:20 +02:00
power
PM / runtime: Drop usage count for suppliers at device link removal
2018-05-27 12:18:55 +02:00
regmap
Merge remote-tracking branches 'regmap/topic/debugfs' and 'regmap/topic/mmio-clk' into regmap-next
2018-03-12 09:50:42 -07:00
test
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
arch_topology.c
Revert "base: arch_topology: fix section mismatch build warnings"
2018-03-15 14:36:20 +01:00
attribute_container.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
base.h
PM / core: fix deferred probe breaking suspend resume order
2018-04-24 12:18:25 +02:00
bus.c
drivers: base: omit redundant interations
2017-12-18 16:47:27 +01:00
cacheinfo.c
Merge 4.15-rc6 into driver-core-next
2018-01-02 14:56:51 +01:00
class.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
component.c
component: add debugfs support
2017-12-18 16:51:11 +01:00
container.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
core.c
PM / core: fix deferred probe breaking suspend resume order
2018-04-24 12:18:25 +02:00
cpu.c
driver core: cpu: use put_device() if device_register fail
2018-03-15 14:37:04 +01:00
dd.c
PM / runtime: Fixup reference counting of device link suppliers at probe
2018-05-27 12:10:32 +02:00
devcon.c
drivers: base: Unified device connection lookup
2018-03-22 13:10:29 +01:00
devcoredump.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
devres.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
devtmpfs.c
kernel: add ksys_unshare() helper; remove in-kernel calls to sys_unshare()
2018-04-02 20:16:06 +02:00
dma-coherent.c
dma-coherent: clarify dma_mmap_from_dev_coherent documentation
2018-04-23 14:44:17 +02:00
dma-contiguous.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
dma-mapping.c
dma-mapping: postpone cpu addr translation on mmap
2018-04-23 14:44:24 +02:00
driver.c
drivers: base: omit redundant interations
2017-12-18 16:47:27 +01:00
firmware.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
hypervisor.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
init.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
isa.c
Merge 4.15-rc3 into driver-core-next
2017-12-11 08:50:05 +01:00
Kconfig
drm/graphics pull request for v4.16-rc1
2018-02-01 17:48:47 -08:00
Makefile
Driver core patches for 4.17-rc1
2018-04-04 19:41:45 -07:00
map.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
memory.c
mm: check __highest_present_section_nr directly in memory_dev_init()
2018-04-11 10:28:31 -07:00
module.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
node.c
mm/memory_hotplug: optimize memory hotplug
2018-04-05 21:36:25 -07:00
pinctrl.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
platform-msi.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
platform.c
driver core: platform: use put_device() if device_register fail
2018-03-15 14:37:04 +01:00
property.c
device property: Constify device_get_match_data()
2018-02-12 10:41:11 +01:00
soc.c
base: soc: use put_device() instead of kfree()
2018-03-15 14:37:03 +01:00
syscore.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
topology.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00
transport_class.c
driver core: Remove redundant license text
2017-12-07 18:36:44 +01:00