Loading arch/arm64/kernel/smp.c +8 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ #include <asm/tlbflush.h> #include <asm/ptrace.h> #include <asm/virt.h> #include <asm/system_misc.h> #define CREATE_TRACE_POINTS #include <trace/events/ipi.h> Loading Loading @@ -841,15 +842,20 @@ void arch_irq_work_raise(void) #endif static DEFINE_RAW_SPINLOCK(stop_lock); DEFINE_PER_CPU(struct pt_regs, regs_before_stop); /* * ipi_cpu_stop - handle IPI from smp_send_stop() */ static void ipi_cpu_stop(unsigned int cpu) static void ipi_cpu_stop(unsigned int cpu, struct pt_regs *regs) { if (system_state == SYSTEM_BOOTING || system_state == SYSTEM_RUNNING) { per_cpu(regs_before_stop, cpu) = *regs; raw_spin_lock(&stop_lock); pr_crit("CPU%u: stopping\n", cpu); __show_regs(regs); dump_stack(); raw_spin_unlock(&stop_lock); } Loading Loading @@ -912,7 +918,7 @@ void handle_IPI(int ipinr, struct pt_regs *regs) case IPI_CPU_STOP: irq_enter(); ipi_cpu_stop(cpu); ipi_cpu_stop(cpu, regs); irq_exit(); break; Loading Loading
arch/arm64/kernel/smp.c +8 −2 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ #include <asm/tlbflush.h> #include <asm/ptrace.h> #include <asm/virt.h> #include <asm/system_misc.h> #define CREATE_TRACE_POINTS #include <trace/events/ipi.h> Loading Loading @@ -841,15 +842,20 @@ void arch_irq_work_raise(void) #endif static DEFINE_RAW_SPINLOCK(stop_lock); DEFINE_PER_CPU(struct pt_regs, regs_before_stop); /* * ipi_cpu_stop - handle IPI from smp_send_stop() */ static void ipi_cpu_stop(unsigned int cpu) static void ipi_cpu_stop(unsigned int cpu, struct pt_regs *regs) { if (system_state == SYSTEM_BOOTING || system_state == SYSTEM_RUNNING) { per_cpu(regs_before_stop, cpu) = *regs; raw_spin_lock(&stop_lock); pr_crit("CPU%u: stopping\n", cpu); __show_regs(regs); dump_stack(); raw_spin_unlock(&stop_lock); } Loading Loading @@ -912,7 +918,7 @@ void handle_IPI(int ipinr, struct pt_regs *regs) case IPI_CPU_STOP: irq_enter(); ipi_cpu_stop(cpu); ipi_cpu_stop(cpu, regs); irq_exit(); break; Loading