On Fri, 26 Jun 2015, tip-bot for Thomas Gleixner wrote: > Commit-ID: c30e30478c74e5be2fa3bbe954084a31f0d60570 > Gitweb: http://git.kernel.org/tip/c30e30478c74e5be2fa3bbe954084a31f0d60570 > Author: Thomas Gleixner <[email protected]> > AuthorDate: Sun, 21 Jun 2015 20:16:06 +0200 > Committer: Thomas Gleixner <[email protected]> > CommitDate: Thu, 25 Jun 2015 11:56:52 +0200 > > mfd/asic3: Fix race in installing chained IRQ handler > > Fix a race where a pending interrupt could be received and the handler > called before the handler's data has been setup, by converting to > irq_set_chained_handler_and_data(). > > Search and conversion was done with coccinelle: > > @@ > expression E1, E2, E3; > @@ > ( > -if (irq_set_chained_handler(E1, E3) != 0) > - BUG(); > | > -irq_set_chained_handler(E1, E3); > ) > -irq_set_handler_data(E1, E2); > +irq_set_chained_handler_and_data(E1, E3, E2); > > @@ > expression E1, E2, E3; > @@ > ( > -if (irq_set_chained_handler(E1, E3) != 0) > - BUG(); > ... > | > -irq_set_chained_handler(E1, E3); > ... > ) > -irq_set_handler_data(E1, E2); > +irq_set_chained_handler_and_data(E1, E3, E2); > > Reported-by: Russell King <[email protected]> > Signed-off-by: Thomas Gleixner <[email protected]> > Cc: Julia Lawall <[email protected]> > Cc: Samuel Ortiz <[email protected]> > Cc: Lee Jones <[email protected]> > --- > drivers/mfd/asic3.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-)
Applied to MFD -fixes. > diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c > index 977bd3a..120df5c 100644 > --- a/drivers/mfd/asic3.c > +++ b/drivers/mfd/asic3.c > @@ -417,9 +417,8 @@ static int __init asic3_irq_probe(struct platform_device > *pdev) > asic3_write_register(asic, ASIC3_OFFSET(INTR, INT_MASK), > ASIC3_INTMASK_GINTMASK); > > - irq_set_chained_handler(asic->irq_nr, asic3_irq_demux); > + irq_set_chained_handler_and_data(asic->irq_nr, asic3_irq_demux, asic); > irq_set_irq_type(asic->irq_nr, IRQ_TYPE_EDGE_RISING); > - irq_set_handler_data(asic->irq_nr, asic); > > return 0; > } -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

