Hi Dan Carpenter, Thanks for the patch. > -----Original Message----- > From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Sent: Wednesday, April 19, 2023 3:24 PM > To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> > Cc: William Breathitt Gray <william.gray@xxxxxxxxxx>; Lee Jones > <lee@xxxxxxxxxx>; linux-iio@xxxxxxxxxxxxxxx; linux-renesas- > soc@xxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx > Subject: [PATCH] counter: rz-mtu3-cnt: Unlock on error in > rz_mtu3_count_write() > > The return -ERANGE error paths need to call mutex_unlock(&priv->lock); > before returning. > > Fixes: 25d21447d896 ("counter: Add Renesas RZ/G2L MTU3a counter driver") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Reviewed-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> Cheers, Biju > --- > drivers/counter/rz-mtu3-cnt.c | 20 ++++++++++++-------- > 1 file changed, 12 insertions(+), 8 deletions(-) > > diff --git a/drivers/counter/rz-mtu3-cnt.c b/drivers/counter/rz-mtu3-cnt.c > index a371bab68499..aeadce5e2853 100644 > --- a/drivers/counter/rz-mtu3-cnt.c > +++ b/drivers/counter/rz-mtu3-cnt.c > @@ -358,19 +358,23 @@ 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) > - return -ERANGE; > + if (ceiling > U16_MAX) { > + ret = -ERANGE; > + goto unlock; > + } > priv->mtu_16bit_max[ch_id] = ceiling; > break; > case RZ_MTU3_32_BIT_CH: > - if (ceiling > U32_MAX) > - return -ERANGE; > + if (ceiling > U32_MAX) { > + ret = -ERANGE; > + goto unlock; > + } > priv->mtu_32bit_max = ceiling; > break; > default: > /* should never reach this path */ > - mutex_unlock(&priv->lock); > - return -EINVAL; > + ret = -EINVAL; > + goto unlock; > } > > pm_runtime_get_sync(ch->dev); > @@ -381,9 +385,9 @@ static int rz_mtu3_count_ceiling_write(struct > counter_device *counter, > > rz_mtu3_8bit_ch_write(ch, RZ_MTU3_TCR, RZ_MTU3_TCR_CCLR_TGRA); > pm_runtime_put(ch->dev); > +unlock: > mutex_unlock(&priv->lock); > - > - return 0; > + return ret; > } > > static void rz_mtu3_32bit_cnt_setting(struct counter_device *counter) > -- > 2.39.2