[PATCH Dovetail v2 1/2] dovetail: genirq: Add request_percpu_irq_affinity_flags()
Florian Bezdeka <[email protected]>
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <20260217-wip-flo-v6-19-dovetail-rebase-v2-1-45fc326a166a@siemens.com> |
cobalt / evl are currently using __request_percpu_irq() for setting up OOB IRQs. In 6.19 the signature of __request_percpu_irq() has been updated and 7.0 will remove the function entirely, so we need a replacement. All other variants (like the upcoming request_percpu_irq_affinity()) are missing the flags parameter which we require. This could be backported to all supported dovetail versions. That would allow co-kernels to switch to the new API unconditionally. Signed-off-by: Florian Bezdeka <[email protected]> --- include/linux/interrupt.h | 5 +++++ kernel/irq/manage.c | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index bf0511b438c65e119af917763ce92a8f3bfb4c4c..6cd8ad02ffbd87f71869d6737fbc8c1ae477c1ee 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -213,6 +213,11 @@ request_percpu_irq_affinity(unsigned int irq, irq_handler_t handler, devname, affinity, percpu_dev_id); } +int request_percpu_irq_affinity_flags(unsigned int irq, irq_handler_t handler, + unsigned long flags, const char *devname, + const cpumask_t *affinity, + void __percpu *dev_id); + extern int __must_check request_percpu_nmi(unsigned int irq, irq_handler_t handler, const char *name, const struct cpumask *affinity, void __percpu *dev_id); diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 2a2991d529e4e21e88b8f15fcd51cdb01b69411c..b2290c7ba087e4e9a4b9e94163be1f45631d7c3f 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -2580,6 +2580,16 @@ struct irqaction *create_percpu_irqaction(irq_handler_t handler, unsigned long f return action; } +int request_percpu_irq_affinity_flags(unsigned int irq, irq_handler_t handler, + unsigned long flags, const char *devname, + const cpumask_t *affinity, + void __percpu *dev_id) +{ + return __request_percpu_irq(irq, handler, flags, devname, affinity, + dev_id); +} +EXPORT_SYMBOL_GPL(request_percpu_irq_affinity_flags); + /** * __request_percpu_irq - allocate a percpu interrupt line * @irq: Interrupt line to allocate -- 2.53.0