mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-07 20:33:58 -04:00
Merge "ARM64: smp: Save CPU registers before IPI_CPU_STOP processing"
This commit is contained in:
commit
292a453226
1 changed files with 8 additions and 2 deletions
|
|
@ -49,6 +49,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>
|
||||
|
|
@ -835,15 +836,20 @@ void arch_irq_work_raise(void)
|
|||
#endif
|
||||
|
||||
static DEFINE_RAW_SPINLOCK(stop_lock);
|
||||
|
||||
static 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);
|
||||
}
|
||||
|
|
@ -906,7 +912,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…
Reference in a new issue