Commit bdc370d6 authored by Yipeng Zou's avatar Yipeng Zou Committed by Yongqiang Liu
Browse files

genirq: Introduce warn log when irq be reentrant

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: default avatarYipeng Zou <zouyipeng@huawei.com>
Reviewed-by: default avatarZhang Jianhua <chris.zjh@huawei.com>
Signed-off-by: default avatarYongqiang Liu <liuyongqiang13@huawei.com>
parent 9b7fffe9
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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