Re: [v2 2/4] platform: (TS-5500) add GPIO support

From: Mark Brown
Date: Tue Aug 30 2011 - 14:41:41 EST


On Tue, Aug 30, 2011 at 02:39:28PM -0400, Vivien Didelot wrote:
> On Mon, 29 Aug 2011 23:11:33 +0100,
> Mark Brown <broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> > On Fri, Aug 26, 2011 at 07:40:25PM -0400, Vivien Didelot wrote:
> > > + bitno = line_to_bit_map[offset];

> > > + mutex_lock(&drvdata->gpio_lock);
> > > + byte = inb(ioaddr);
> > > + mutex_unlock(&drvdata->gpio_lock);

> > Do you really need the lock to do a read?

> Is there any chance for this function to be preempted before reading the
> register, allowing a call to ts5500_gpio_direction_output to occur
> before ts5500_gpio_get is completed?

Yes, but if that happens the mutex isn't going to help at all as you can
also be prempted before taking the mutex or after dropping it (or before
or after the function call itself...).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/