mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
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>
This commit is contained in:
parent
ddf84433f4
commit
ccdaa6e0c8
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user