Subject: Strange initialization in arch/mips/kernel/smtc.c:1094?

From: Rusty Russell <[email-masked]>
Date: Mon, 9 Feb 2009 21:49:16 +1030

Latest Linus kernel, but it's been there a while:

static struct irqaction irq_ipi = {
	.handler	= ipi_interrupt,
	.flags		= IRQF_DISABLED,
	.name		= "SMTC_IPI",
	.flags		= IRQF_PERCPU
};

.flags is initialized twice: I'm amazed this even compiles.

Cheers,
Rusty.

---

From: "Kevin D. Kissell" <[email-masked]>
Date: Mon, 09 Feb 2009 05:57:28 -0600

> .flags is initialized twice: I'm amazed this even compiles.
I don't know where that came from.  The very earliest versions of smtc.c 
didn't have a declaration initialization at all, but filled the fields 
in setup_cross_vpe_interrupts().  The IRQ was PERCPU since day one.  The 
initial DISABLED state came later.  I'm guessing someone added that 
hastily and didn't notice the pre-existing .flags definition.  I'm 
curious as to which bit(s) are actually set.

          Regards,

          Kevin K.