On Thu, Jul 04, 2024 at 10:05:05AM +0100, Marc Zyngier wrote: > On Thu, 04 Jul 2024 09:52:16 +0100, > Catalin Marinas <catalin.marinas@xxxxxxx> wrote: > > > > On Tue, Jul 02, 2024 at 06:40:12PM +0800, kernel test robot wrote: > > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > > > head: 82e4255305c554b0bb18b7ccf2db86041b4c8b6e > > > commit: d633da5d3ab1a0eb26a2213d65da1e189e82f8ab [9019/10049] irqchip/gic-v3: Add support for ACPI's disabled but 'online capable' CPUs > > > config: arm-randconfig-r034-20220810 (https://download.01.org/0day-ci/archive/20240702/202407021807.cBuWVBVa-lkp@xxxxxxxxx/config) > > > compiler: arm-linux-gnueabi-gcc (GCC) 13.2.0 > > > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240702/202407021807.cBuWVBVa-lkp@xxxxxxxxx/reproduce) > > > > > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > > > the same patch/commit), kindly add following tags > > > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > > > | Closes: https://lore.kernel.org/oe-kbuild-all/202407021807.cBuWVBVa-lkp@xxxxxxxxx/ > > > > > > All warnings (new ones prefixed by >>): > > > > > > >> drivers/irqchip/irq-gic-v3.c:47:23: warning: 'broken_rdists' defined but not used [-Wunused-variable] > > > 47 | static struct cpumask broken_rdists __read_mostly; > > > | ^~~~~~~~~~~~~ > > > > > > > > > vim +/broken_rdists +47 drivers/irqchip/irq-gic-v3.c > > > > This can happen when building on arm32 with SMP disabled. So we either > > add a __maybe_unused annotation or we move the variable further down in > > the CONFIG_SMP block. Marc, what's your preference? > > > > -----------8<---------------------- > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > > index c29b424d1d0c..6393f3d780e9 100644 > > --- a/drivers/irqchip/irq-gic-v3.c > > +++ b/drivers/irqchip/irq-gic-v3.c > > @@ -47,7 +47,7 @@ static u8 dist_prio_nmi __ro_after_init = GICV3_PRIO_NMI; > > > > #define GIC_IRQ_TYPE_PARTITION (GIC_IRQ_TYPE_LPI + 1) > > > > -static struct cpumask broken_rdists __read_mostly; > > +static struct cpumask broken_rdists __read_mostly __maybe_unused; > > > > struct redist_region { > > void __iomem *redist_base; > > -----------8<---------------------- > > > > or, > > > > -----------8<---------------------- > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > > index c29b424d1d0c..187948f41bb3 100644 > > --- a/drivers/irqchip/irq-gic-v3.c > > +++ b/drivers/irqchip/irq-gic-v3.c > > @@ -47,8 +47,6 @@ static u8 dist_prio_nmi __ro_after_init = GICV3_PRIO_NMI; > > > > #define GIC_IRQ_TYPE_PARTITION (GIC_IRQ_TYPE_LPI + 1) > > > > -static struct cpumask broken_rdists __read_mostly; > > - > > struct redist_region { > > void __iomem *redist_base; > > phys_addr_t phys_base; > > @@ -1316,6 +1314,8 @@ static void gic_cpu_init(void) > > > > #ifdef CONFIG_SMP > > > > +static struct cpumask broken_rdists __read_mostly; > > + > > #define MPIDR_TO_SGI_RS(mpidr) (MPIDR_RS(mpidr) << ICC_SGI1R_RS_SHIFT) > > #define MPIDR_TO_SGI_CLUSTER_ID(mpidr) ((mpidr) & ~0xFUL) > > The second version seems to be the most logical one, since we already > have this SMP-only block (note to self: constraint GICv3 support to > SMP only at the earliest opportunity). > > Feel free to add my > > Acked-by: Marc Zyngier <maz@xxxxxxxxxx> > > if you decide to push a fix on top of this branch. Ah, it's also used in the CONFIG_ACPI block further down. So __maybe_unused may be easier. Or add some #if defined(CONFIG_SMP) || defined(CONFIG_ACPI) but it seems too verbose. -- Catalin