aboutsummaryrefslogtreecommitdiff
path: root/drivers/regulator
diff options
context:
space:
mode:
authorGravatar Linus Walleij <linus.walleij@linaro.org> 2019-04-20 13:34:30 +0200
committerGravatar Mark Brown <broonie@kernel.org> 2019-04-25 20:04:56 +0100
commit78927aa40bc82f32de07323ddc1c9de07ac68180 (patch)
tree93a338e657d6216e773c2886a7974bab1ab71797 /drivers/regulator
parentregulator: core: Avoid potential deadlock on regulator_unregister (diff)
downloadlinux-78927aa40bc82f32de07323ddc1c9de07ac68180.tar.gz
linux-78927aa40bc82f32de07323ddc1c9de07ac68180.tar.bz2
linux-78927aa40bc82f32de07323ddc1c9de07ac68180.zip
regulator: core: Actually put the gpiod after use
I went to great lengths to hand over the management of the GPIO descriptors to the regulator core, and some stray rebased oneliner in the old patch must have been assuming the devices were still doing devres management of it. We handed the management over to the regulator core, so of course the regulator core shall issue gpiod_put() when done. Sorry for the descriptor leak. Fixes: 541d052d7215 ("regulator: core: Only support passing enable GPIO descriptors") Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'drivers/regulator')
-rw-r--r--drivers/regulator/core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 8573dd0871fd..35a7d020afec 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -2256,6 +2256,7 @@ static void regulator_ena_gpio_free(struct regulator_dev *rdev)
if (pin->gpiod == rdev->ena_pin->gpiod) {
if (pin->request_count <= 1) {
pin->request_count = 0;
+ gpiod_put(pin->gpiod);
list_del(&pin->list);
kfree(pin);
rdev->ena_pin = NULL;