diff options
author | Dan Carpenter <dan.carpenter@linaro.org> | 2023-04-20 18:02:11 +0300 |
---|---|---|
committer | Lee Jones <lee@kernel.org> | 2023-04-26 11:40:35 +0100 |
commit | 1e28dfdf40d7293882ba7eb70a3bc0e9ab625377 (patch) | |
tree | 712767c77f1580f3cebff2aefc4271570b8e67a2 /drivers/counter | |
parent | 1706636eafcab76e08784f66f80f00d9aa59bed1 (diff) |
counter: rz-mtu3-cnt: Unlock on error in rz_mtu3_count_ceiling_write()
These error paths need to call mutex_unlock(&priv->lock) before
returning. The lock is taken in rz_mtu3_lock_if_counter_is_valid().
Fixes: 25d21447d896 ("counter: Add Renesas RZ/G2L MTU3a counter driver")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: William Breathitt Gray <william.gray@linaro.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/7b535d6b-6031-493a-84f6-82842089e637@kili.mountain
Diffstat (limited to 'drivers/counter')
-rw-r--r-- | drivers/counter/rz-mtu3-cnt.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/counter/rz-mtu3-cnt.c b/drivers/counter/rz-mtu3-cnt.c index a371bab68499..48c83933aa2f 100644 --- a/drivers/counter/rz-mtu3-cnt.c +++ b/drivers/counter/rz-mtu3-cnt.c @@ -358,13 +358,17 @@ static int rz_mtu3_count_ceiling_write(struct counter_device *counter, switch (count->id) { case RZ_MTU3_16_BIT_MTU1_CH: case RZ_MTU3_16_BIT_MTU2_CH: - if (ceiling > U16_MAX) + if (ceiling > U16_MAX) { + mutex_unlock(&priv->lock); return -ERANGE; + } priv->mtu_16bit_max[ch_id] = ceiling; break; case RZ_MTU3_32_BIT_CH: - if (ceiling > U32_MAX) + if (ceiling > U32_MAX) { + mutex_unlock(&priv->lock); return -ERANGE; + } priv->mtu_32bit_max = ceiling; break; default: |