diff options
author | Dan Carpenter <dan.carpenter@linaro.org> | 2025-07-15 17:58:34 -0500 |
---|---|---|
committer | Bartosz Golaszewski <bartosz.golaszewski@linaro.org> | 2025-07-16 11:02:06 +0200 |
commit | 5103fbb7b59f7a078284a345d82bdab0f0ee6d08 (patch) | |
tree | 0fddc06aee3363880d1e2fee746b2e0d03ed3fe1 | |
parent | 0c0438d444a7814783099c9028823bff5977e4f0 (diff) |
gpio: viperboard: Unlock on error in vprbrd_gpiob_direction_output()
Unlock before returning if vprbrd_gpiob_setdir() fails.
Fixes: 55e2d1eec110 ("gpio: viperboard: use new GPIO line value setter callbacks")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/9e72018c-e46e-4e55-83e4-503da4d022fc@sabinyo.mountain
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
-rw-r--r-- | drivers/gpio/gpio-viperboard.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/gpio/gpio-viperboard.c b/drivers/gpio/gpio-viperboard.c index 3eba77f981d3..e8e906b54d51 100644 --- a/drivers/gpio/gpio-viperboard.c +++ b/drivers/gpio/gpio-viperboard.c @@ -378,15 +378,13 @@ static int vprbrd_gpiob_direction_output(struct gpio_chip *chip, gpio->gpiob_out |= (1 << offset); mutex_lock(&vb->lock); - ret = vprbrd_gpiob_setdir(vb, offset, 1); + mutex_unlock(&vb->lock); if (ret) { dev_err(chip->parent, "usb error setting pin to output\n"); return ret; } - mutex_unlock(&vb->lock); - return vprbrd_gpiob_set(chip, offset, value); } |