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. Thanks, M. -- Without deviation from the norm, progress is not possible.