lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 5 May 2009 13:58:36 -0700
From:	Arve Hjønnevåg <arve@...roid.com>
To:	Kevin Hilman <khilman@...prootsystems.com>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	linux-pm@...ts.linux-foundation.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] PM: suspend_device_irqs(): don't disable wakeup IRQs

On Tue, May 5, 2009 at 8:52 AM, Kevin Hilman
<khilman@...prootsystems.com> wrote:
> Andrew Morton <akpm@...ux-foundation.org> writes:
>
>> On Mon,  4 May 2009 17:27:04 -0700 Kevin Hilman <khilman@...prootsystems.com> wrote:
>>
>>> Interrupts that are flagged as wakeup sources via set_irq_wake()
>>> should not be disabled for suspend.
>>>
>>
>> Why not?
>>
>
> If an interrupt is a wakeup source, and it is disabled at the chip
> level, it will no longer generate interrupts, and thus no longer wake
> up the system.
>
> I'd be interested in hearing why wakeup interrupts should be disabled
> during suspend.
>
>>>
>>> diff --git a/kernel/irq/pm.c b/kernel/irq/pm.c
>>> index 638d8be..99113bd 100644
>>> --- a/kernel/irq/pm.c
>>> +++ b/kernel/irq/pm.c
>>> @@ -28,6 +28,9 @@ void suspend_device_irqs(void)
>>>      for_each_irq_desc(irq, desc) {
>>>              unsigned long flags;
>>>
>>> +            if (desc->status & IRQ_WAKEUP)
>>> +                    continue;
>>> +
>>>              spin_lock_irqsave(&desc->lock, flags);
>>>              __disable_irq(desc, irq, true);
>>>              spin_unlock_irqrestore(&desc->lock, flags);
>>
>> If this fixes some bug then please provide a description of that bug?
>
> The bug is that on TI OMAP, interrupts that are used for wakeup events
> are disabled by this code causing the system to no longer wake up.

What do you do if the interrupt triggers right after your driver has
returned from its late suspend hook? By leaving the interrupt enabled
you prevent check_wakeup_irqs from aborting suspend.

-- 
Arve Hjønnevåg
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ