diff options
Diffstat (limited to 'arch/arm/kernel/smp.c')
| -rw-r--r-- | arch/arm/kernel/smp.c | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index dea7a925c7e..d100eacdb79 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c @@ -59,7 +59,8 @@ struct secondary_data secondary_data;  volatile int __cpuinitdata pen_release = -1;  enum ipi_msg_type { -	IPI_TIMER = 2, +	IPI_WAKEUP, +	IPI_TIMER,  	IPI_RESCHEDULE,  	IPI_CALL_FUNC,  	IPI_CALL_FUNC_SINGLE, @@ -414,7 +415,8 @@ void arch_send_call_function_single_ipi(int cpu)  }  static const char *ipi_types[NR_IPI] = { -#define S(x,s)	[x - IPI_TIMER] = s +#define S(x,s)	[x] = s +	S(IPI_WAKEUP, "CPU wakeup interrupts"),  	S(IPI_TIMER, "Timer broadcast interrupts"),  	S(IPI_RESCHEDULE, "Rescheduling interrupts"),  	S(IPI_CALL_FUNC, "Function call interrupts"), @@ -567,10 +569,13 @@ void handle_IPI(int ipinr, struct pt_regs *regs)  	unsigned int cpu = smp_processor_id();  	struct pt_regs *old_regs = set_irq_regs(regs); -	if (ipinr >= IPI_TIMER && ipinr < IPI_TIMER + NR_IPI) -		__inc_irq_stat(cpu, ipi_irqs[ipinr - IPI_TIMER]); +	if (ipinr < NR_IPI) +		__inc_irq_stat(cpu, ipi_irqs[ipinr]);  	switch (ipinr) { +	case IPI_WAKEUP: +		break; +  	case IPI_TIMER:  		irq_enter();  		ipi_timer();  |