Subject: [PATCH] arm: use cpu_online_mask when using forced irq_set_affinity

From: [email-masked] (Sudeep Holla)
Date: Thu, 28 Aug 2014 11:12:15 +0100

On 28/08/14 10:32, Thomas Gleixner wrote:
> On Tue, 26 Aug 2014, Sudeep Holla wrote:
>>>> Can provide your thoughts on how to solve this issue ?
>>>
>>> ffde1de64012 is not about offlining a cpu, it's about onlining where
>>> we need to make sure that we assign the affinity to a not yet online
>>> marked cpu.
>>>
>>>> Is it expected from all the irqchip implementation to use force flag in
>>>> irq_set_affinity to ignore cpu_online_mask similar to GIC ?
>>>
>>> No, it's only relevant for the cases where we need to route irqs to
>>> not yet online cpus.
>>>
>>
>> Ok. IIUC Russell's main concern was if irqchip implementation uses force
>> flag differently, then we can't change the core code to false. Also
>> x86 core code also uses forced irq_set_affinity in arch/x86/kernel/irq.c
>
> Which is pointless as none of the x86 irq chip implementations
> actually honours the force argument.
>
> In fact until the point where I implemented it in the GIC driver,
> nothing ever used that argument. So the GIC conversion actually added
> semantics to the argument. Any driver which will make use of it, has
> to follow that now. I'll add documentation to the core code for it ...
>

Thanks Thomas for confirming.

Hi Russell,

Can I post the patch changing force to false in irq_set_affinity call
to fix the issue and cc stable ? It's broken in stable kernels(v3.10 and
v3.14)

Regards,
Sudeep