2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-27 22:53:55 +08:00
linux-next/drivers/base
Doug Berger 2ef7c01c0c PM / wakeup: Only update last time for active wakeup sources
When wakelock support was added, the wakeup_source_add() function
was updated to set the last_time value of the wakeup source. This
has the unintended side effect of producing confusing output from
pm_print_active_wakeup_sources() when a wakeup source is added
prior to a sleep that is blocked by a different wakeup source.

The function pm_print_active_wakeup_sources() will search for the
most recently active wakeup source when no active source is found.
If a wakeup source is added after a different wakeup source blocks
the system from going to sleep it may have a later last_time value
than the blocking source and be output as the last active wakeup
source even if it has never actually been active.

It looks to me like the change to wakeup_source_add() was made to
prevent the wakelock garbage collection from accidentally dropping
a wakelock during the narrow window between adding the wakelock to
the wakelock list in wakelock_lookup_add() and the activation of
the wakeup source in pm_wake_lock().

This commit changes the behavior so that only the last_time of the
wakeup source used by a wakelock is initialized prior to adding it
to the wakeup source list. This preserves the meaning of the
last_time value as the last time the wakeup source was active and
allows a wakeup source that has never been active to have a
last_time value of 0.

Fixes: b86ff9820f (PM / Sleep: Add user space interface for manipulating wakeup sources, v3)
Signed-off-by: Doug Berger <opendmb@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-05-10 11:39:19 +02:00
..
firmware_loader firmware: add firmware_request_cache() to help with cache on reboot 2018-03-22 18:33:26 +01:00
power PM / wakeup: Only update last time for active wakeup sources 2018-05-10 11:39:19 +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 / core: fix deferred probe breaking suspend resume order 2018-04-24 12:18:25 +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 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dma-contiguous.c driver core: Remove redundant license text 2017-12-07 18:36:44 +01:00
dma-mapping.c driver core: Remove redundant license text 2017-12-07 18:36:44 +01: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