Re: [PATCH 2/3] drivers/irqchip: update supports_deactivate static key to modern api

From: Davidlohr Bueso
Date: Mon Mar 26 2018 - 10:07:20 EST


On Mon, 26 Mar 2018, Marc Zyngier wrote:

static struct gic_chip_data gic_data __read_mostly;
-static struct static_key supports_deactivate = STATIC_KEY_INIT_TRUE;
+DEFINE_STATIC_KEY_TRUE(supports_deactivate_key);

When you combine this...

[...]

diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index ac2e62d613d1..9b7630cee56c 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -121,7 +121,7 @@ static DEFINE_RAW_SPINLOCK(cpu_map_lock);
#define NR_GIC_CPU_IF 8
static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly;

-static struct static_key supports_deactivate = STATIC_KEY_INIT_TRUE;
+DEFINE_STATIC_KEY_TRUE(supports_deactivate_key);

...with that, bad things happen:

drivers/irqchip/irq-gic-v3.o:(.data+0x278): multiple definition of `supports_deactivate_key'
drivers/irqchip/irq-gic.o:(.data+0x18): first defined here
Makefile:1032: recipe for target 'vmlinux' failed
make: *** [vmlinux] Error 1

Hmm both were (cross) compile tested, I'll have a look.

Thanks,
Davidlohr