cpumask is limited to NR_CPUS. introduce ipi_mask which allows us to address cpu range that is higher than NR_CPUS which is required for drivers to send IPIs for coprocessor that are outside Linux CPU range. Signed-off-by: Qais Yousef <qais.yousef@xxxxxxxxxx> --- include/linux/irq.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/linux/irq.h b/include/linux/irq.h index 11bf09288ddb..4b537e4d393b 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -125,6 +125,21 @@ enum { struct msi_desc; struct irq_domain; + /** + * struct ipi_mask - IPI mask information + * @cpumask: bitmap of cpumasks + * @nbits: number of bits in cpumask + * @global: whether the mask is SMP IPI ie: subset of cpu_possible_mask or not + * + * ipi_mask is similar to cpumask, but it provides nbits that's configurable + * rather than fixed to NR_CPUS. + */ +struct ipi_mask { + unsigned long *cpumask; + unsigned int nbits; + bool global; +}; + /** * struct irq_common_data - per irq data shared by all irqchips * @state_use_accessors: status information for irq chip functions. -- 2.1.0