This RFC series attempts to implement a generic IPI layer for reserving and sending IPI. It is based on the discussion in this link https://lkml.org/lkml/2015/8/26/713 This series deals with points #1 and #2 only. Since I'm not the irq expert, I'm hoping this series will give me early feedback and drive the discussion further about any potential tricky points. I tried to keep changes clean and small, but since this is just an RFC I might have missed few things. Thomas I hope I didn't stray far from what you had in mind :-) My only testing so far is having SMP linux booting. Qais Yousef (6): irqdomain: add new IRQ_DOMAIN_FLAGS_IPI irqdomain: add a new send_ipi() to irq_domain_ops irqdomain: add struct irq_hwcfg and helper functions irq: add a new generic IPI handling code to irq core irqchip: mips-gic: add a IPI hierarchy domain irqchip: mips-gic: use the new generic IPI API arch/mips/kernel/smp-gic.c | 37 ++-- drivers/irqchip/Kconfig | 1 + drivers/irqchip/irq-mips-gic.c | 189 ++++++++++++++++++--- include/linux/irqchip/mips-gic.h | 3 +- include/linux/irqdomain.h | 67 ++++++++ kernel/irq/irqdomain.c | 352 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 601 insertions(+), 48 deletions(-) -- 2.1.0