提交 82552e86 编写于 作者: W Wei Li 提交者: Yang Yingliang

arm64: fix calling nmi_enter() repeatedly when IPI_CPU_CRASH_STOP

hulk inclusion
category: bugfix
bugzilla: 28145
CVE: NA

-------------------------------------------------

The nmi_enter() may has been called in el1_irq. When processing
IPI_CPU_CRASH_STOP in handle_IPI(), don't call nmi_enter() again if
interrupt is disabled (already in NMI context).

Fixes: e753aae7e448 ("arm64: Fix interrupt tracing in the presence of NMIs")
Signed-off-by: NWei Li <liwei391@huawei.com>
Reviewed-by: NHanjun Guo <guohanjun@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 76f43578
...@@ -924,9 +924,10 @@ void handle_IPI(int ipinr, struct pt_regs *regs) ...@@ -924,9 +924,10 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
case IPI_CPU_CRASH_STOP: case IPI_CPU_CRASH_STOP:
if (IS_ENABLED(CONFIG_KEXEC_CORE)) { if (IS_ENABLED(CONFIG_KEXEC_CORE)) {
if (gic_supports_pseudo_nmis()) if (gic_supports_pseudo_nmis()) {
nmi_enter(); if (irqs_enabled)
else nmi_enter();
} else
irq_enter(); irq_enter();
ipi_cpu_crash_stop(cpu, regs); ipi_cpu_crash_stop(cpu, regs);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册