genirq: Add send_ipi callbacks to irq_chip
authorQais Yousef <qais.yousef@imgtec.com>
Tue, 8 Dec 2015 13:20:21 +0000 (13:20 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 25 Feb 2016 09:56:57 +0000 (10:56 +0100)
Introduce the new callbacks which can be used by the core code to implement a
generic IPI send mechanism.

Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
Cc: <jason@lakedaemon.net>
Cc: <marc.zyngier@arm.com>
Cc: <jiang.liu@linux.intel.com>
Cc: <ralf@linux-mips.org>
Cc: <linux-mips@linux-mips.org>
Cc: <lisa.parratt@imgtec.com>
Cc: Qais Yousef <qsyousef@gmail.com>
Link: http://lkml.kernel.org/r/1449580830-23652-11-git-send-email-qais.yousef@imgtec.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
include/linux/irq.h

index 10273dc..3b3a5b8 100644 (file)
@@ -347,6 +347,8 @@ 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
  * @flags:             chip specific flags
  */
 struct irq_chip {
@@ -391,6 +393,9 @@ 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);
+
        unsigned long   flags;
 };