On Mon, 2016-07-11 at 12:43 +0300, Andy Shevchenko wrote: > On Mon, 2016-07-11 at 11:13 +0200, Linus Walleij wrote: > > On Mon, Jul 11, 2016 at 6:55 AM, Mika Westerberg > > <mika.westerberg@xxxxxxxxxxxxxxx> wrote: > > > On Fri, Jul 08, 2016 at 02:08:23PM +0300, Andy Shevchenko wrote: > > > > +static void mrfld_irq_ack(struct irq_data *d) > > > > +{ > > > > + struct mrfld_gpio *priv = irq_data_get_irq_chip_data(d); > > > > + u32 gpio = irqd_to_hwirq(d); > > > > + void __iomem *gisr = gpio_reg(&priv->chip, gpio, GISR); > > > > + > > > > + writel(BIT(gpio % 32), gisr); > > > > > > It just occured me that you actually need to take the lock here. > > > If > > > another thread is doing series of updates on the same register > > > this > > > might step over what the other thread is doing. > > > > I accept incremental patches, I think it's safe to begin with this > > merged > > and work from there if there are issues. > > You were faster than me in case it's already merged. Otherwise there > is > v3 I sent today. Discard that one. I sent an incremental patch. "gpio: merrifield: Protect irq_ack() and gpio_set() by lock" -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html