Просмотр исходного кода

ARC: [SMP] IPI ACK interface doesn't need "self" cpu-id

The interface is confusing, it feels like we are getting "sender" info,
whereas it is the "receiver", which can very well be retrived by
smp_processor_id(), if need be.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Vineet Gupta 11 лет назад
Родитель
Сommit
ccdaa6e0c8
3 измененных файлов с 5 добавлено и 5 удалено
  1. 2 2
      arch/arc/include/asm/smp.h
  2. 1 1
      arch/arc/kernel/smp.c
  3. 2 2
      arch/arc/plat-arcfpga/smp.c

+ 2 - 2
arch/arc/include/asm/smp.h

@@ -47,13 +47,13 @@ extern int smp_ipi_irq_setup(int cpu, int irq);
  * @info:		SoC SMP specific info for /proc/cpuinfo etc
  * @cpu_kick:		For Master to kickstart a cpu (optionally at a PC)
  * @ipi_send:		To send IPI to a @cpu
- * @ips_clear:		To clear IPI received by @cpu at @irq
+ * @ips_clear:		To clear IPI received at @irq
  */
 struct plat_smp_ops {
 	const char 	*info;
 	void		(*cpu_kick)(int cpu, unsigned long pc);
 	void		(*ipi_send)(int cpu);
-	void		(*ipi_clear)(int cpu, int irq);
+	void		(*ipi_clear)(int irq);
 };
 
 /* TBD: stop exporting it for direct population by platform */

+ 1 - 1
arch/arc/kernel/smp.c

@@ -310,7 +310,7 @@ irqreturn_t do_IPI(int irq, void *dev_id)
 	unsigned long ops;
 
 	if (plat_smp_ops.ipi_clear)
-		plat_smp_ops.ipi_clear(cpu, irq);
+		plat_smp_ops.ipi_clear(irq);
 
 	/*
 	 * XXX: is this loop really needed

+ 2 - 2
arch/arc/plat-arcfpga/smp.c

@@ -93,9 +93,9 @@ static void iss_model_ipi_send(int cpu)
 	idu_irq_assert(cpu);
 }
 
-static void iss_model_ipi_clear(int cpu, int irq)
+static void iss_model_ipi_clear(int irq)
 {
-	idu_irq_clear(IDU_INTERRUPT_0 + cpu);
+	idu_irq_clear(IDU_INTERRUPT_0 + smp_processor_id());
 }
 
 void iss_model_init_early_smp(void)