Message ID | 20240307214317.2914835-1-alexander.sverdlin@gmail.com |
---|---|
State | Accepted |
Commit | 8636f19c2d1f8199b27b4559d9caa115b3011f06 |
Headers | show |
Series | gpio: sysfs: repair export returning -EPERM on 1st attempt | expand |
On Thu, Mar 7, 2024 at 10:43 PM Alexander Sverdlin <alexander.sverdlin@gmail.com> wrote: > > It would make sense to return -EPERM if the bit was already set (already > used), not if it was cleared. Before this fix pins can only be exported on > the 2nd attempt: > > $ echo 522 > /sys/class/gpio/export > sh: write error: Operation not permitted > $ echo 522 > /sys/class/gpio/export > > Fixes: 35b545332b80 ("gpio: remove gpio_lock") > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> > --- > drivers/gpio/gpiolib-sysfs.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c > index 67fc09a57f26..6853ecd98bcb 100644 > --- a/drivers/gpio/gpiolib-sysfs.c > +++ b/drivers/gpio/gpiolib-sysfs.c > @@ -593,7 +593,7 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change) > if (!guard.gc) > return -ENODEV; > > - if (!test_and_set_bit(FLAG_EXPORT, &desc->flags)) > + if (test_and_set_bit(FLAG_EXPORT, &desc->flags)) > return -EPERM; > > gdev = desc->gdev; > -- > 2.43.2 > That's of course correct. Applied. Bart
diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c index 67fc09a57f26..6853ecd98bcb 100644 --- a/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c @@ -593,7 +593,7 @@ int gpiod_export(struct gpio_desc *desc, bool direction_may_change) if (!guard.gc) return -ENODEV; - if (!test_and_set_bit(FLAG_EXPORT, &desc->flags)) + if (test_and_set_bit(FLAG_EXPORT, &desc->flags)) return -EPERM; gdev = desc->gdev;
It would make sense to return -EPERM if the bit was already set (already used), not if it was cleared. Before this fix pins can only be exported on the 2nd attempt: $ echo 522 > /sys/class/gpio/export sh: write error: Operation not permitted $ echo 522 > /sys/class/gpio/export Fixes: 35b545332b80 ("gpio: remove gpio_lock") Signed-off-by: Alexander Sverdlin <alexander.sverdlin@gmail.com> --- drivers/gpio/gpiolib-sysfs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)