IPIs are always assumed to be consecutively allocated, hence virqs and hwirqs
can be inferred by using CPU id as an offset. But the first cpu doesn't always
have to start at position 0. ipi_offset stores the position of the first cpu so
that we can easily calculate the virq or hwirq of an IPI associated with a
specific cpu.

Signed-off-by: Qais Yousef <qais.you...@imgtec.com>
---
 include/linux/irq.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/linux/irq.h b/include/linux/irq.h
index 14f1c036119c..6bcbd11207ea 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -150,6 +150,7 @@ struct ipi_mapping {
  * @ipi_mapping:       Contains the hwirq mapping of IPIs.
  *                     The use of this struct is optional and not all irqchips
  *                     will use it.
+ * @ipi_offset:                offset of first IPI in the mask
  */
 struct irq_common_data {
        unsigned int            state_use_accessors;
@@ -161,6 +162,7 @@ struct irq_common_data {
        cpumask_var_t           affinity;
 #ifdef CONFIG_GENERIC_IRQ_IPI
        struct ipi_mapping      *ipi_map;
+       unsigned int            ipi_offset;
 #endif
 };
 
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to