Loading arch/arm/kernel/smp.c +4 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <asm/virt.h> #include <asm/mach/arch.h> #include <asm/mpu.h> #include <soc/qcom/minidump.h> #define CREATE_TRACE_POINTS #include <trace/events/ipi.h> Loading Loading @@ -607,12 +608,13 @@ static DEFINE_RAW_SPINLOCK(stop_lock); /* * 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_RUNNING) { raw_spin_lock(&stop_lock); pr_crit("CPU%u: stopping\n", cpu); dump_stack(); dump_stack_minidump(regs->uregs[13]); raw_spin_unlock(&stop_lock); } Loading Loading @@ -682,7 +684,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/arm/kernel/smp.c +4 −2 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ #include <asm/virt.h> #include <asm/mach/arch.h> #include <asm/mpu.h> #include <soc/qcom/minidump.h> #define CREATE_TRACE_POINTS #include <trace/events/ipi.h> Loading Loading @@ -607,12 +608,13 @@ static DEFINE_RAW_SPINLOCK(stop_lock); /* * 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_RUNNING) { raw_spin_lock(&stop_lock); pr_crit("CPU%u: stopping\n", cpu); dump_stack(); dump_stack_minidump(regs->uregs[13]); raw_spin_unlock(&stop_lock); } Loading Loading @@ -682,7 +684,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