It has a similar role to affinity mask, but tracks the IPI affinity instead. Signed-off-by: Qais Yousef <qais.yousef@xxxxxxxxxx> --- include/linux/irq.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/linux/irq.h b/include/linux/irq.h index 7d8c3d88f16f..fcdcb9394e75 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -168,6 +168,9 @@ struct irq_common_data { void *handler_data; struct msi_desc *msi_desc; cpumask_var_t affinity; +#ifdef CONFIG_GENERIC_IRQ_IPI + struct ipi_mask *ipi_mask; +#endif }; /** @@ -705,6 +708,21 @@ static inline struct cpumask *irq_data_get_affinity_mask(struct irq_data *d) return d->common->affinity; } +#ifdef CONFIG_GENERIC_IRQ_IPI + +static inline struct ipi_mask *irq_data_get_ipi_mask(struct irq_data *d) +{ + return d->common->ipi_mask; +} + +static inline void irq_data_set_ipi_mask(struct irq_data *d, + struct ipi_mask *ipimask) +{ + d->common->ipi_mask = ipimask; +} + +#endif + unsigned int arch_dynirq_lower_bound(unsigned int from); int __irq_alloc_descs(int irq, unsigned int from, unsigned int cnt, int node, -- 2.1.0