diff options
Diffstat (limited to 'arch/powerpc/kernel/crash.c')
| -rw-r--r-- | arch/powerpc/kernel/crash.c | 72 | 
1 files changed, 2 insertions, 70 deletions
| diff --git a/arch/powerpc/kernel/crash.c b/arch/powerpc/kernel/crash.c index 832c8c4db254..3d569e2aff18 100644 --- a/arch/powerpc/kernel/crash.c +++ b/arch/powerpc/kernel/crash.c @@ -48,7 +48,7 @@ int crashing_cpu = -1;  static cpumask_t cpus_in_crash = CPU_MASK_NONE;  cpumask_t cpus_in_sr = CPU_MASK_NONE; -#define CRASH_HANDLER_MAX 2 +#define CRASH_HANDLER_MAX 3  /* NULL terminated list of shutdown handles */  static crash_shutdown_t crash_shutdown_handles[CRASH_HANDLER_MAX+1];  static DEFINE_SPINLOCK(crash_handlers_lock); @@ -125,7 +125,7 @@ static void crash_kexec_prepare_cpus(int cpu)  	smp_wmb();  	/* -	 * FIXME: Until we will have the way to stop other CPUSs reliabally, +	 * FIXME: Until we will have the way to stop other CPUs reliably,  	 * the crash CPU will send an IPI and wait for other CPUs to  	 * respond.  	 * Delay of at least 10 seconds. @@ -254,72 +254,6 @@ void crash_kexec_secondary(struct pt_regs *regs)  	cpus_in_sr = CPU_MASK_NONE;  }  #endif -#ifdef CONFIG_SPU_BASE - -#include <asm/spu.h> -#include <asm/spu_priv1.h> - -struct crash_spu_info { -	struct spu *spu; -	u32 saved_spu_runcntl_RW; -	u32 saved_spu_status_R; -	u32 saved_spu_npc_RW; -	u64 saved_mfc_sr1_RW; -	u64 saved_mfc_dar; -	u64 saved_mfc_dsisr; -}; - -#define CRASH_NUM_SPUS	16	/* Enough for current hardware */ -static struct crash_spu_info crash_spu_info[CRASH_NUM_SPUS]; - -static void crash_kexec_stop_spus(void) -{ -	struct spu *spu; -	int i; -	u64 tmp; - -	for (i = 0; i < CRASH_NUM_SPUS; i++) { -		if (!crash_spu_info[i].spu) -			continue; - -		spu = crash_spu_info[i].spu; - -		crash_spu_info[i].saved_spu_runcntl_RW = -			in_be32(&spu->problem->spu_runcntl_RW); -		crash_spu_info[i].saved_spu_status_R = -			in_be32(&spu->problem->spu_status_R); -		crash_spu_info[i].saved_spu_npc_RW = -			in_be32(&spu->problem->spu_npc_RW); - -		crash_spu_info[i].saved_mfc_dar    = spu_mfc_dar_get(spu); -		crash_spu_info[i].saved_mfc_dsisr  = spu_mfc_dsisr_get(spu); -		tmp = spu_mfc_sr1_get(spu); -		crash_spu_info[i].saved_mfc_sr1_RW = tmp; - -		tmp &= ~MFC_STATE1_MASTER_RUN_CONTROL_MASK; -		spu_mfc_sr1_set(spu, tmp); - -		__delay(200); -	} -} - -void crash_register_spus(struct list_head *list) -{ -	struct spu *spu; - -	list_for_each_entry(spu, list, full_list) { -		if (WARN_ON(spu->number >= CRASH_NUM_SPUS)) -			continue; - -		crash_spu_info[spu->number].spu = spu; -	} -} - -#else -static inline void crash_kexec_stop_spus(void) -{ -} -#endif /* CONFIG_SPU_BASE */  /*   * Register a function to be called on shutdown.  Only use this if you @@ -439,8 +373,6 @@ void default_machine_crash_shutdown(struct pt_regs *regs)  	crash_shutdown_cpu = -1;  	__debugger_fault_handler = old_handler; -	crash_kexec_stop_spus(); -  	if (ppc_md.kexec_cpu_down)  		ppc_md.kexec_cpu_down(1, 0);  } |