MIPS: SMTC: Remove duplicate structure field initialization
The definition of the irq_ipi structure has two initializations of the flags field. This combines them. [Ralf: The issue was originally introduced by commit be4894196d79455f420dd7bb78be7dc73bec115c (linux-mips.org) rsp. 033890b084adfa367c544864451d7730552ce8bf (kernel.org). The original intention of the code was to initialize .flags with both flags ored together. The broken C code as actually implemented will be compiled by an equally broken gcc to use only the last initialization, that is IRQF_PERCPU which means this turned into an SMTC bug for 2.6.23 and newer.] The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ identifier I, s, fld; position p0,p; expression E; @@ struct I s =@p0 { ... .fld@p = E, ...}; @s@ identifier I, s, r.fld; position r.p0,p; expression E; @@ struct I s =@p0 { ... .fld@p = E, ...}; @script:python@ p0 << r.p0; fld << r.fld; ps << s.p; pr << r.p; @@ if int(ps[0].line)!=int(pr[0].line) or int(ps[0].column)!=int(pr[0].column): cocci.print_main(fld,p0) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
committed by
Ralf Baechle
parent
742db5d108
commit
b265158399
@ -1098,9 +1098,8 @@ static void ipi_irq_dispatch(void)
|
||||
|
||||
static struct irqaction irq_ipi = {
|
||||
.handler = ipi_interrupt,
|
||||
.flags = IRQF_DISABLED,
|
||||
.name = "SMTC_IPI",
|
||||
.flags = IRQF_PERCPU
|
||||
.flags = IRQF_DISABLED | IRQF_PERCPU,
|
||||
.name = "SMTC_IPI"
|
||||
};
|
||||
|
||||
static void setup_cross_vpe_interrupts(unsigned int nvpe)
|
||||
|
Reference in New Issue
Block a user