mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 10:58:48 +09:00
LoongArch: Mask all interrupts during kexec/kdump
[ 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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e9b3a97e85
commit
a32eddf2bb
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user