Introduce the new functions to allow generic IPI send mechanism to be used from arch and drivers code. Signed-off-by: Qais Yousef <qais.yousef@xxxxxxxxxx> --- include/linux/irq.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/irq.h b/include/linux/irq.h index 9a5d1e11a08f..ee01e89c2140 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -381,6 +381,10 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d) * @irq_get_irqchip_state: return the internal state of an interrupt * @irq_set_irqchip_state: set the internal state of a interrupt * @irq_set_vcpu_affinity: optional to target a vCPU in a virtual machine + * @ipi_send_single: send a single IPI to destination cpus + * @ipi_send_mask: send an IPI to destination cpus in cpumask + * @ipi_send_coproc_single: send a single IPI to destination coprocessor + * @ipi_send_coproc_mask: send an IPI to destination corocessors in ipi_mask * @flags: chip specific flags */ struct irq_chip { @@ -425,6 +429,11 @@ struct irq_chip { int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info); + void (*ipi_send_single)(struct irq_data *data, unsigned int cpu); + void (*ipi_send_mask)(struct irq_data *data, const struct cpumask *dest); + void (*ipi_send_coproc_single)(struct irq_data *data, unsigned int cpu); + void (*ipi_send_coproc_mask)(struct irq_data *data, const struct ipi_mask *dest); + unsigned long flags; }; -- 2.1.0