Skip to content
Commit d4dc0f90 authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

genirq: Allow check_wakeup_irqs to notice level-triggered interrupts



Level triggered interrupts do not cause IRQS_PENDING to be set when
they fire while "disabled" as the 'pending' state is always present in
the level - they automatically refire where re-enabled.

However the IRQS_PENDING flag is also used to abort a suspend cycle -
if any 'is_wakeup_set' interrupt is PENDING, check_wakeup_irqs() will
cause suspend to abort. Without IRQS_PENDING, suspend won't abort.

Consequently, level-triggered interrupts that fire during the 'noirq'
phase of suspend do not currently abort suspend.

So set IRQS_PENDING even for level triggered interrupts, and make sure
to clear the flag in check_irq_resend.

[ Changelog by courtesy of Neil ]

Tested-by: default avatarNeilBrown <neilb@suse.de>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent f5d89470
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment