Messages in this thread | | | Date | Tue, 10 Sep 2013 16:34:20 -0600 | From | Stephen Warren <> | Subject | Re: [PATCH v3] gpio: interrupt consistency check for OF GPIO IRQs |
| |
On 09/10/2013 03:37 PM, Mark Brown wrote: > On Tue, Sep 10, 2013 at 01:53:47PM -0600, Stephen Warren wrote: > >> Doesn't this patch call gpio_request() on the GPIO first, and >> hence prevent the driver's own gpio_request() from succeeding, >> since the GPIO is already requested? If this is not a problem, it >> sounds like a bug in gpio_request() not ensuring mutual exclusion >> for the GPIO. > > Or at the very least something that's likely to break in the > future.
Looking at the GPIO code, it already prevents double-requests:
> if (test_and_set_bit(FLAG_REQUESTED, &desc->flags) == 0) { > desc_set_label(desc, label ? : "?"); > status = 0; > } else { > status = -EBUSY; > module_put(chip->owner); > goto done; > }
And I tested it in practice, and it really does fail.
| |