Commit 863a320d authored by Huacai Chen's avatar Huacai Chen
Browse files

LoongArch: Mask all interrupts during kexec/kdump



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: default avatarTianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent acf5de1b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -237,6 +237,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");
@@ -274,6 +275,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 addr: 0x%lx\n", cmdline_ptr);