From 3d25025ce9c2f364ea4ee76f1461c8714b9c0b6d Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Wed, 26 Jun 2019 11:36:40 +0200 Subject: [PATCH] pwm: fsl-ftm: Make sure to unlock mutex on failure Upon failure to enable clocks while trying to enable the PWM, make sure to unlock the mutex that was taken to avoid a deadlock during subsequent operations. Reported-by: kbuild test robot Reported-by: Julia Lawall Cc: Patrick Havelange Signed-off-by: Thierry Reding --- drivers/pwm/pwm-fsl-ftm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-fsl-ftm.c b/drivers/pwm/pwm-fsl-ftm.c index 6a4106c65cb4..efc226bda214 100644 --- a/drivers/pwm/pwm-fsl-ftm.c +++ b/drivers/pwm/pwm-fsl-ftm.c @@ -342,12 +342,12 @@ static int fsl_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, if (!oldstate->enabled) { ret = clk_prepare_enable(fpc->clk[fpc->period.clk_select]); if (ret) - return ret; + goto end_mutex; ret = clk_prepare_enable(fpc->clk[FSL_PWM_CLK_CNTEN]); if (ret) { clk_disable_unprepare(fpc->clk[fpc->period.clk_select]); - return ret; + goto end_mutex; } regmap_update_bits(fpc->regmap, FTM_OUTMASK, BIT(pwm->hwpwm), -- 2.34.1