• Rafael J. Wysocki's avatar
    PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily · 7bf4e594
    Rafael J. Wysocki authored
    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: default avatarTony Lindgren <tony@atomide.com>
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    7bf4e594
power.h 4.89 KB