Subject: Re: [PATCH tip:irq/core v1] genirq: remove auto-set of the mask when setting the hint

From: Thomas Gleixner <[email-masked]>
Date: Mon, 17 May 2021 22:18:27 +0200

On Mon, May 17 2021 at 21:08, Thomas Gleixner wrote:
> On Mon, May 17 2021 at 19:50, Robin Murphy wrote:
>> On 2021-05-17 19:08, Thomas Gleixner wrote:
>>> On Mon, May 17 2021 at 18:26, Robin Murphy wrote:
>>>> On 2021-05-17 17:57, Nitesh Lal wrote:
>>>> I'm not implying that there isn't a bug, or that this code ever made
>>>> sense in the first place, just that fixing it will unfortunately be a
>>>> bit more involved than a simple revert. This patch as-is *will* subtly
>>>> break at least the system PMU drivers currently using
>>> 
>>> s/using/abusing/
>>> 
>>>> irq_set_affinity_hint() - those I know require the IRQ affinity to
>>>> follow whichever CPU the PMU context is bound to, in order to meet perf
>>>> core's assumptions about mutual exclusion.
>>> 
>>> Which driver is that?
>>
>> Right now, any driver which wants to control an IRQ's affinity and also 
>> build as a module, for one thing. I'm familiar with drivers/perf/ where 
>> a basic pattern has been widely copied;
>
> Bah. Why the heck can't people talk and just go and rumage until they
> find something which hopefully does what they want...
>
> The name of that function should have rang all alarm bells...

Aside of that all the warnings around the return value are useless cargo
cult. Why?

The only reason why this function returns an error code is when there is
no irq descriptor assigned to the interrupt number, which is well close
to impossible in that context.

But it does _NOT_ return an error when the actual affinity setting
fails...

Thanks,

        tglx