| From 7dfce754d9ddbf924757751845058bf95d678641 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 20 Nov 2025 14:42:05 +0800 |
| Subject: LoongArch: Mask all interrupts during kexec/kdump |
| |
| From: Huacai Chen <chenhuacai@loongson.cn> |
| |
| [ Upstream commit 863a320dc6fd7c855f47da4bb82a8de2d9102ea2 ] |
| |
| If the default state of the interrupt controllers in the first kernel |
| don't mask any interrupts, it may cause the second kernel to potentially |
| receive interrupts (which were previously allocated by the first kernel) |
| immediately after a CPU becomes online during its boot process. These |
| interrupts cannot be properly routed, leading to bad IRQ issues. |
| |
| This patch calls machine_kexec_mask_interrupts() to mask all interrupts |
| during the kexec/kdump process. |
| |
| Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn> |
| Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/loongarch/kernel/machine_kexec.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/arch/loongarch/kernel/machine_kexec.c b/arch/loongarch/kernel/machine_kexec.c |
| index f9381800e291c..8ef4e4595d61a 100644 |
| --- a/arch/loongarch/kernel/machine_kexec.c |
| +++ b/arch/loongarch/kernel/machine_kexec.c |
| @@ -249,6 +249,7 @@ void machine_crash_shutdown(struct pt_regs *regs) |
| #ifdef CONFIG_SMP |
| crash_smp_send_stop(); |
| #endif |
| + machine_kexec_mask_interrupts(); |
| cpumask_set_cpu(crashing_cpu, &cpus_in_crash); |
| |
| pr_info("Starting crashdump kernel...\n"); |
| @@ -286,6 +287,7 @@ void machine_kexec(struct kimage *image) |
| |
| /* We do not want to be bothered. */ |
| local_irq_disable(); |
| + machine_kexec_mask_interrupts(); |
| |
| pr_notice("EFI boot flag 0x%lx\n", efi_boot); |
| pr_notice("Command line at 0x%lx\n", cmdline_ptr); |
| -- |
| 2.51.0 |
| |