Re: [PATCH v2] irqchip: LoongArch: Select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP

From: Marc Zyngier
Date: Mon Nov 28 2022 - 04:52:30 EST


On Sat, 26 Nov 2022 23:49:10 +0000,
Samuel Holland <samuel@xxxxxxxxxxxx> wrote:
>
> On 11/26/22 06:53, Marc Zyngier wrote:
> > On Thu, 27 Oct 2022 04:39:09 +0100,
> > Tiezhu Yang <yangtiezhu@xxxxxxxxxxx> wrote:
> >>
> >> An IRQ's effective affinity can only be different from its configured
> >> affinity if there are multiple CPUs. Make it clear that this option is
> >> only meaningful when SMP is enabled.
> >>
> >> Signed-off-by: Tiezhu Yang <yangtiezhu@xxxxxxxxxxx>
> >> ---
> >>
> >> v2: rebased on 6.1-rc2
> >>
> >> drivers/irqchip/Kconfig | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> >> index 7ef9f5e..8461915 100644
> >> --- a/drivers/irqchip/Kconfig
> >> +++ b/drivers/irqchip/Kconfig
> >> @@ -575,7 +575,7 @@ config IRQ_LOONGARCH_CPU
> >> bool
> >> select GENERIC_IRQ_CHIP
> >> select IRQ_DOMAIN
> >> - select GENERIC_IRQ_EFFECTIVE_AFF_MASK
> >> + select GENERIC_IRQ_EFFECTIVE_AFF_MASK if SMP
> >> select LOONGSON_LIOINTC
> >> select LOONGSON_EIOINTC
> >> select LOONGSON_PCH_PIC
> >
> > We already have this:
> >
> > # Supports effective affinity mask
> > config GENERIC_IRQ_EFFECTIVE_AFF_MASK
> > depends on SMP
> > bool
> >
> > Do we really need to express this for every interrupt controller?
>
> Unfortunately yes, because "select" does not respect dependencies. So
> the "depends on SMP" line does not enforce anything; it only serves to
> provide a warning at configure time that the build will break.

I understand that. My question was more "how can we avoid doing that
for each and every irqchip".

So far, the only things I can think of are either an intermediate
config symbol that performs the "if SMP" by itself, or spraying checks
for CONFIG_SMP all over the shop. None of which are appealing.

M.

--
Without deviation from the norm, progress is not possible.