diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2025-07-18 20:54:10 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2025-07-22 14:30:42 +0200 |
commit | c609045abc778689ce42e8f5827a84179ace52c5 (patch) | |
tree | d665af89d31edd9f611a7769a85230927eefa5c6 /kernel/irq/chip.c | |
parent | 4e879dedd571128ed5aa4d5989ec0a1938804d20 (diff) |
genirq: Split up irq_pm_check_wakeup()
Let the calling code check for the IRQD_WAKEUP_ARMED flag to prepare for a
live lock mitigation in the edge type handler.
No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Liangyan <liangyan.peng@bytedance.com>
Link: https://lore.kernel.org/all/20250718185312.012392426@linutronix.de
Diffstat (limited to 'kernel/irq/chip.c')
-rw-r--r-- | kernel/irq/chip.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 290244ca28dd..11ecf6c78c01 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -488,8 +488,10 @@ static bool irq_can_handle_pm(struct irq_desc *desc) * and suspended, disable it and notify the pm core about the * event. */ - if (irq_pm_check_wakeup(desc)) + if (unlikely(irqd_has_set(irqd, IRQD_WAKEUP_ARMED))) { + irq_pm_handle_wakeup(desc); return false; + } /* Check whether the interrupt is polled on another CPU */ if (unlikely(desc->istate & IRQS_POLL_INPROGRESS)) { |