mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
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
This commit is contained in:
@@ -358,13 +358,17 @@ static int rz_mtu3_count_ceiling_write(struct counter_device *counter,
|
|||||||
switch (count->id) {
|
switch (count->id) {
|
||||||
case RZ_MTU3_16_BIT_MTU1_CH:
|
case RZ_MTU3_16_BIT_MTU1_CH:
|
||||||
case RZ_MTU3_16_BIT_MTU2_CH:
|
case RZ_MTU3_16_BIT_MTU2_CH:
|
||||||
if (ceiling > U16_MAX)
|
if (ceiling > U16_MAX) {
|
||||||
|
mutex_unlock(&priv->lock);
|
||||||
return -ERANGE;
|
return -ERANGE;
|
||||||
|
}
|
||||||
priv->mtu_16bit_max[ch_id] = ceiling;
|
priv->mtu_16bit_max[ch_id] = ceiling;
|
||||||
break;
|
break;
|
||||||
case RZ_MTU3_32_BIT_CH:
|
case RZ_MTU3_32_BIT_CH:
|
||||||
if (ceiling > U32_MAX)
|
if (ceiling > U32_MAX) {
|
||||||
|
mutex_unlock(&priv->lock);
|
||||||
return -ERANGE;
|
return -ERANGE;
|
||||||
|
}
|
||||||
priv->mtu_32bit_max = ceiling;
|
priv->mtu_32bit_max = ceiling;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user