]> git.hungrycats.org Git - linux/commitdiff
regulator: core: Fix regualtor_ena_gpio_free not to access pin after freeing
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Thu, 4 Dec 2014 10:17:17 +0000 (19:17 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 May 2017 05:44:10 +0000 (07:44 +0200)
commit 60a2362f769cf549dc466134efe71c8bf9fbaaba upstream.

After freeing pin from regulator_ena_gpio_free, loop can access
the pin. So this patch fixes not to access pin after freeing.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/regulator/core.c

index 872e53f1559017d9c2ca095869fb332c41e72be4..b2e183627f5363c22da527a20d4c44a407de9bd4 100644 (file)
@@ -1720,6 +1720,8 @@ static void regulator_ena_gpio_free(struct regulator_dev *rdev)
                                gpiod_put(pin->gpiod);
                                list_del(&pin->list);
                                kfree(pin);
+                               rdev->ena_pin = NULL;
+                               return;
                        } else {
                                pin->request_count--;
                        }