Re: [PATCH 03/11] genirq: Export irq_set_affinity_locked()

From: Thomas Gleixner
Date: Sat Sep 25 2021 - 17:21:48 EST


On Sat, Sep 25 2021 at 12:48, Marc Zyngier wrote:
> On Fri, 24 Sep 2021 18:05:38 +0100, Florian Fainelli <f.fainelli@xxxxxxxxx> wrote:
>> }
>> +EXPORT_SYMBOL_GPL(irq_set_affinity_locked);
>
> This doesn't seem right.
>
> This driver seem to try and move interrupts on its own when the CPU
> goes down. Why can't it rely on the normal CPU hotplug infrastructure
> to do so like all the other drivers (bar some Cavium driver that does
> the same thing)?
>
> I'd rather you take this opportunity to move these drivers into the
> 21st century, so that we can kill irq_cpu_offline() and co altogether.

I wanted to kill these callbacks years ago. Cavium has two variants of
those offline/online callbacks:

1) octeon_irq_cpu_offline_ciu() which is doing the same as that BCM
driver. These really can go away. Just remove the callback and
everything just works.

2) Two other variants to fiddle with chip internals, but those chips do
not have an irq_affinity() callback which makes it more interesting.

I don't see a proper way to solve that except for removing Cavium
alltogether, but once the BCM one is gone, we just can make this
muck depend on CAVIUM and be done with it. And I mean depend and not
select.

Thanks,

tglx