]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
regulator: core: Actually put the gpiod after use
authorLinus Walleij <linus.walleij@linaro.org>
Sat, 20 Apr 2019 11:34:30 +0000 (13:34 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 25 Apr 2019 19:04:56 +0000 (20:04 +0100)
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>
drivers/regulator/core.c

index 8573dd0871fd93cdf2e9ea9c608d29d84738a770..35a7d020afecdcb093e9db4d653dc8a9a7b8b87c 100644 (file)
@@ -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;