Re: [PATCH 1/3] cobalt: Prepare for new signature of __request_percpu_irq() in 6.19

Jan Kiszka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
On 16.02.26 12:22, Florian Bezdeka wrote:
> On Mon, 2026-02-16 at 12:16 +0100, Jan Kiszka wrote:
>> On 16.02.26 12:15, Florian Bezdeka wrote:
>>> On Mon, 2026-02-16 at 12:11 +0100, Jan Kiszka wrote:
>>>> On 16.02.26 11:58, Florian Bezdeka wrote:
>>>>> Since 6.19 the signature of __request_percpu_irq() got one additional
>>>>> affinity parameter.
>>>>>
>>>>> A new Linux version specific wrapper cobalt_request_percpu_irq() is
>>>>> introduced to hide the signature change between different Linux
>>>>> versions.
>>>>>
>>>>> Signed-off-by: Florian Bezdeka <[email protected]>
>>>>> ---
>>>>>  include/cobalt/kernel/dovetail/pipeline/irq.h      | 20 ++++++++++++++++++++
>>>>>  include/cobalt/kernel/dovetail/pipeline/pipeline.h | 10 +++++-----
>>>>>  include/cobalt/kernel/dovetail/pipeline/sirq.h     |  8 +++-----
>>>>>  kernel/cobalt/dovetail/tick.c                      |  8 ++++----
>>>>>  4 files changed, 32 insertions(+), 14 deletions(-)
>>>>>
>>>>> diff --git a/include/cobalt/kernel/dovetail/pipeline/irq.h b/include/cobalt/kernel/dovetail/pipeline/irq.h
>>>>> index 55d9b8ff17cd08e5e8c09aec393a1e23736c1b76..ac780a4bb3223889ccf827b5b8cb279035a5dd7b 100644
>>>>> --- a/include/cobalt/kernel/dovetail/pipeline/irq.h
>>>>> +++ b/include/cobalt/kernel/dovetail/pipeline/irq.h
>>>>> @@ -5,6 +5,26 @@
>>>>>  #ifndef _COBALT_KERNEL_DOVETAIL_IRQ_H
>>>>>  #define _COBALT_KERNEL_DOVETAIL_IRQ_H
>>>>>  
>>>>> +#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 19, 0)
>>>>> +static inline int cobalt_request_percpu_irq(unsigned int irq,
>>>>> +					    irq_handler_t handler,
>>>>> +					    unsigned long flags,
>>>>> +					    const char *devname,
>>>>> +					    void __percpu *dev_id)
>>>>> +{
>>>>> +	return __request_percpu_irq(irq, handler, flags, devname, dev_id);
>>>>> +}
>>>>> +#else
>>>>> +static inline int cobalt_request_percpu_irq(unsigned int irq,
>>>>> +					    irq_handler_t handler,
>>>>> +					    unsigned long flags,
>>>>> +					    const char *devname,
>>>>> +					    void __percpu *dev_id)
>>>>> +{
>>>>> +	return __request_percpu_irq(irq, handler, flags, devname, NULL, dev_id);
>>>>> +}
>>>>> +#endif
>>>>
>>>> Please use a define for request_percpu_irq on older kernels that uses
>>>> the new signature and resolves to the old one via __request_percpu_irq
>>>> as needed. 
>>>> Yes, also switch to request_percpu_irq directly because
>>>> __request_percpu_irq is going to be removed in 7.0.
>>>>
>>>
>>> request_percpu_irq() doesn't allow us to specify the flags. IRQF_OOB and
>>> IRQF_NO_THREAD would be needed.
>>
>> Then request_percpu_irq_affinity - whatever survives 7.0 already as well.
>>
> 
> No flags as well. 
> 
> I was not aware of __request_percpu_irq() being renamed in 7.0. Will try
> to find something else, but that doesn't look promising at the moment.
> 

Ouch, indeed, trouble ahead (or extra API needed from dovetail). If this
becomes a blocker moving forward with 6.19, just re-#define
__request_percpu_irq for now.

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.