Re: [PATCH 0/3] IRQ_DOMAIN: remove all "depends on", use only "select"

From: Randy Dunlap
Date: Thu Feb 23 2023 - 13:37:11 EST


Hi Marc,

On 2/14/23 11:56, Marc Zyngier wrote:
> On Tue, 14 Feb 2023 18:30:54 +0000,
> Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
>>
>>
>>
>> On 2/13/23 00:05, Arnd Bergmann wrote:
>>> On Mon, Feb 13, 2023, at 05:15, Randy Dunlap wrote:
>>>> IRQ_DOMAIN is a hidden (not user visible) symbol. Users cannot set
>>>> it directly thru "make *config", so drivers should select it instead
>>>> of depending on it if they need it.
>>>> Relying on it being set for a dependency is risky.
>>>>
>>>> Consistently using "select" or "depends on" can also help reduce
>>>> Kconfig circular dependency issues.
>>>>
>>>> IRQ_DOMAIN is selected 109 times and is depended on 3 times in
>>>> current linux-next. Eliminate the uses of "depends on" by
>>>> converting them to "select".
>>>>
>>>> [PATCH 1/3] extcon: max8997: select IRQ_DOMAIN instead of depending on it
>>>> [PATCH 2/3] of: OF_IRQ: select IRQ_DOMAIN instead of depending on it
>>>> [PATCH 3/3] rtc: mt6397: select IRQ_DOMAIN instead of depending on it
>>>
>>> From a Kconfig perspective, your reasoning makes a lot of sense.
>>>
>>> Looking at the bigger picture, I wonder if we should just remove the
>>> option and make it unconditional. It is enabled in ever architecture
>>> defconfig other than alpha and sparc, and it's selected by a lot of
>>> very common options such as I2C, GENERIC_MSI_IRQ, GENERIC_IRQ_CHIP,
>>> and PCI_HOST_GENERIC. Enabling the option on Alpha grows the kernel
>>> image from 9010KB to 9023KB, or on m68k Coldfire from 3346KB to
>>> 3351KB.
>>
>> Marc, what do you think about this suggestion?
>
> Seems sensible enough to me.
>
> I'd also get rid of the IRQ_DOMAIN_HIERARCHY option, which is used by
> a ton of things. Architectures that are not using it are either dead,
> or at least terminally comatose.
>
> I'm half-tempted to put the following patch into -next. Maybe after
> -rc1 though. And then the option can go as well.
>
> M.

What is this patch based on? It doesn't apply cleanly to current linux-next.

I made a similar patch (to linux-next) that drops the IRQ_DOMAIN_HIERARCHY
option and converts its dependent code to always on.
It has been built (multiple randconfigs) on all ARCHes (except hexagon),
both 32-bit and 64-bit where applicable (not that it should matter here).

But yes, let's plan to get one of these patches in soon (after -rc1).
Thanks.

--
~Randy