aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQais Yousef <qais.yousef@imgtec.com>2015-12-08 08:20:21 -0500
committerThomas Gleixner <tglx@linutronix.de>2016-02-25 04:56:57 -0500
commit34dc1ae101018dbb50e1d04e88aa89052802a7db (patch)
tree7e172db19f41c859963a815dd53aa64974870bb6
parentf9bce791ae2a1a10a965b30427f5507c1a77669f (diff)
genirq: Add send_ipi callbacks to irq_chip
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>
-rw-r--r--include/linux/irq.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 10273dce058a..3b3a5b817469 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -347,6 +347,8 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
347 * @irq_get_irqchip_state: return the internal state of an interrupt 347 * @irq_get_irqchip_state: return the internal state of an interrupt
348 * @irq_set_irqchip_state: set the internal state of a interrupt 348 * @irq_set_irqchip_state: set the internal state of a interrupt
349 * @irq_set_vcpu_affinity: optional to target a vCPU in a virtual machine 349 * @irq_set_vcpu_affinity: optional to target a vCPU in a virtual machine
350 * @ipi_send_single: send a single IPI to destination cpus
351 * @ipi_send_mask: send an IPI to destination cpus in cpumask
350 * @flags: chip specific flags 352 * @flags: chip specific flags
351 */ 353 */
352struct irq_chip { 354struct irq_chip {
@@ -391,6 +393,9 @@ struct irq_chip {
391 393
392 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info); 394 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
393 395
396 void (*ipi_send_single)(struct irq_data *data, unsigned int cpu);
397 void (*ipi_send_mask)(struct irq_data *data, const struct cpumask *dest);
398
394 unsigned long flags; 399 unsigned long flags;
395}; 400};
396 401