| From 768fd6208817ef835ec35b039f46aff1eee8180d Mon Sep 17 00:00:00 2001 |
| From: Linus Walleij <linus.walleij@linaro.org> |
| Date: Sat, 20 Apr 2019 13:34:30 +0200 |
| Subject: regulator: core: Actually put the gpiod after use |
| |
| [ Upstream commit 78927aa40bc82f32de07323ddc1c9de07ac68180 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/regulator/core.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c |
| index 968dcd9d7a070..6da41207e479a 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; |
| -- |
| 2.20.1 |
| |