diff options
author | Dinghao Liu <dinghao.liu@zju.edu.cn> | 2020-05-22 16:08:38 +0800 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2020-05-25 13:29:41 +0200 |
commit | 6f8cd246411575703d9312888b70705c396b53a9 (patch) | |
tree | 567dec957935fd66217906d444db4549d492a155 /drivers/gpio | |
parent | c22fc62b516de5eeea7b518a68e258948e6276ce (diff) | |
download | lwn-6f8cd246411575703d9312888b70705c396b53a9.tar.gz lwn-6f8cd246411575703d9312888b70705c396b53a9.zip |
gpio: rcar: Fix runtime PM imbalance on error
pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code. Thus a pairing decrement is needed on
the error handling path to keep the counter balanced.
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Link: https://lore.kernel.org/r/20200522080839.32612-1-dinghao.liu@zju.edu.cn
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/gpio-rcar.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c index 7284473c9fe3..eac1582c70da 100644 --- a/drivers/gpio/gpio-rcar.c +++ b/drivers/gpio/gpio-rcar.c @@ -250,8 +250,10 @@ static int gpio_rcar_request(struct gpio_chip *chip, unsigned offset) int error; error = pm_runtime_get_sync(p->dev); - if (error < 0) + if (error < 0) { + pm_runtime_put(p->dev); return error; + } error = pinctrl_gpio_request(chip->base + offset); if (error) |