linux_dsm_epyc7002/drivers/base/power
Rafael J. Wysocki 7bf4e594c2 PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily
Returning an error code from dev_pm_attach_wake_irq() if
device_wakeup_attach_irq() called by it returns an error is
pointless, because the wakeup source used by it may be deleted
by user space via sysfs at any time and in particular right after
dev_pm_attach_wake_irq() has returned.  Moreover, it requires
the callers of dev_pm_attach_wake_irq() to create that wakeup
source via device_wakeup_enable() upfront, but that obviously is
racy with respect to the sysfs-based manipulations of it.

To avoid the race, modify device_wakeup_attach_irq() to check
that the wakeup source it is going to use is there (and return
early otherwise), make it void (as it cannot fail after that
change) and make dev_pm_attach_wake_irq() simply call it for
the device unconditionally.

Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2018-01-09 13:09:16 +01:00
..
clock_ops.c PM / clk: Add support for adding a specific clock from device-tree 2016-06-28 00:42:10 +02:00
common.c PM: Avoid false-positive warnings in dev_pm_domain_set() 2016-02-03 19:10:37 +01:00
domain_governor.c PM / QoS: Fix device resume latency framework 2017-11-08 12:14:51 +01:00
domain.c Merge branch 'pm-qos' 2017-11-13 01:33:48 +01:00
generic_ops.c PM / sleep: Remove pm_complete_with_resume_check() 2017-10-11 15:40:29 +02:00
main.c PM / core: Direct DPM_FLAG_LEAVE_SUSPENDED handling 2018-01-03 00:30:00 +01:00
Makefile Merge branches 'pm-cpufreq-sched' and 'pm-opp' 2017-11-13 01:40:52 +01:00
power.h PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily 2018-01-09 13:09:16 +01:00
qos.c PM / QoS: Fix device resume latency framework 2017-11-08 12:14:51 +01:00
runtime.c PM / runtime: Fix handling of suppliers with disabled runtime PM 2017-12-04 15:12:07 +01:00
sysfs.c PM / sysfs: Convert to use DEVICE_ATTR_RO / DEVICE_ATTR_RW 2017-12-05 01:59:57 +01:00
trace.c timekeeping: Ignore the bogus sleep time if pm_trace is enabled 2016-11-29 18:02:58 +01:00
wakeirq.c PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily 2018-01-09 13:09:16 +01:00
wakeup.c PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily 2018-01-09 13:09:16 +01:00