Comment 117 for bug 1745646

Revision history for this message
Rafael J. Wysocki (rjwysocki) wrote : Re: [PATCH] PCI / PM: Check device_may_wakeup() in pci_enable_wake()

On Thu, May 10, 2018 at 3:03 PM, Bjorn Helgaas <email address hidden> wrote:
> On Wed, May 09, 2018 at 12:18:32AM +0200, Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <email address hidden>
>>
>> Commit 0847684cfc5f0 (PCI / PM: Simplify device wakeup settings code)
>> went too far and dropped the device_may_wakeup() check from
>> pci_enable_wake() which causes wakeup to be enabled during system
>> suspend, hibernation or shutdown for some PCI devices that are not
>> allowed by user space to wake up the system from sleep (or power off).
>>
>> As a result of this excessive power is drawn by some of the affected
>> systems while in sleep states or off.
>>
>> Restore the device_may_wakeup() check in pci_enable_wake(), but make
>> sure that the PCI bus type's runtime suspend callback will not call
>> device_may_wakeup() which is about system wakeup from sleep and not
>> about device wakeup from runtime suspend.
>>
>> Fixes: 0847684cfc5f0 (PCI / PM: Simplify device wakeup settings code)
>> Reported-by: Joseph Salisbury <email address hidden>
>> Signed-off-by: Rafael J. Wysocki <email address hidden>
>
> Acked-by: Bjorn Helgaas <email address hidden>
>
> 0847684cfc5f0 appeared in v4.13, which raises the question of whether
> this problem is important enough for a stable backport. Up to you :)

Yes, it is IMO, thank you!