
From: Yipeng Zou <zouyipeng@huawei.com> hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I6BO2R CVE: NA -------------------------------- Now we has nothing to show the log when the irq be reentrant in multiple cpus. The IRQD_IRQ_INPROGRESS means that the irq was in processing. We can add an checkpoint here to indentifly this scenario. Signed-off-by: Yipeng Zou <zouyipeng@huawei.com> Reviewed-by: Zhang Jianhua <chris.zjh@huawei.com> Signed-off-by: Yongqiang Liu <liuyongqiang13@huawei.com> --- kernel/irq/chip.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c index 63a9ad8307e6..39bed3e4da3c 100644 --- a/kernel/irq/chip.c +++ b/kernel/irq/chip.c @@ -513,6 +513,10 @@ static bool irq_may_run(struct irq_desc *desc) if (!irqd_has_set(&desc->irq_data, mask)) return true; + if (irqd_get(&desc->irq_data) & IRQD_IRQ_INPROGRESS) + pr_warn_ratelimited("irq %u(%lu) may be reentrant in multiple cpus.\n", + desc->irq_data.irq, desc->irq_data.hwirq); + /* * If the interrupt is an armed wakeup source, mark it pending * and suspended, disable it and notify the pm core about the -- 2.25.1