Use guard() to simplify mutex locking. No functional change.
Signed-off-by: Guoniu Zhou <guoniu.zhou@nxp.com>
---
drivers/media/i2c/ds90ub953.c | 34 +++++++++++++---------------------
1 file changed, 13 insertions(+), 21 deletions(-)
diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c
index 6f09322553640384b1f43af0dbdf4f54b4ba004a..d7799531773ee32bf9f95eef30618cce9d479dd0 100644
--- a/drivers/media/i2c/ds90ub953.c
+++ b/drivers/media/i2c/ds90ub953.c
@@ -112,20 +112,18 @@ static int ub953_read(struct ub953_data *priv, u8 reg, u8 *val, int *err)
if (err && *err)
return *err;
- mutex_lock(&priv->reg_lock);
+ guard(mutex)(&priv->reg_lock);
ret = regmap_read(priv->regmap, reg, &v);
if (ret) {
dev_err(&priv->client->dev, "Cannot read register 0x%02x: %d\n",
reg, ret);
- goto out_unlock;
+ goto err;
}
*val = v;
-out_unlock:
- mutex_unlock(&priv->reg_lock);
-
+err:
if (ret && err)
*err = ret;
@@ -139,15 +137,13 @@ static int ub953_write(struct ub953_data *priv, u8 reg, u8 val, int *err)
if (err && *err)
return *err;
- mutex_lock(&priv->reg_lock);
+ guard(mutex)(&priv->reg_lock);
ret = regmap_write(priv->regmap, reg, val);
if (ret)
dev_err(&priv->client->dev,
"Cannot write register 0x%02x: %d\n", reg, ret);
- mutex_unlock(&priv->reg_lock);
-
if (ret && err)
*err = ret;
@@ -184,18 +180,18 @@ static int ub953_read_ind(struct ub953_data *priv, u8 block, u8 reg, u8 *val,
if (err && *err)
return *err;
- mutex_lock(&priv->reg_lock);
+ guard(mutex)(&priv->reg_lock);
ret = ub953_select_ind_reg_block(priv, block);
if (ret)
- goto out_unlock;
+ goto err;
ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg);
if (ret) {
dev_err(&priv->client->dev,
"Write to IND_ACC_ADDR failed when reading %u:0x%02x: %d\n",
block, reg, ret);
- goto out_unlock;
+ goto err;
}
ret = regmap_read(priv->regmap, UB953_REG_IND_ACC_DATA, &v);
@@ -203,14 +199,12 @@ static int ub953_read_ind(struct ub953_data *priv, u8 block, u8 reg, u8 *val,
dev_err(&priv->client->dev,
"Write to IND_ACC_DATA failed when reading %u:0x%02x: %d\n",
block, reg, ret);
- goto out_unlock;
+ goto err;
}
*val = v;
-out_unlock:
- mutex_unlock(&priv->reg_lock);
-
+err:
if (ret && err)
*err = ret;
@@ -226,18 +220,18 @@ static int ub953_write_ind(struct ub953_data *priv, u8 block, u8 reg, u8 val,
if (err && *err)
return *err;
- mutex_lock(&priv->reg_lock);
+ guard(mutex)(&priv->reg_lock);
ret = ub953_select_ind_reg_block(priv, block);
if (ret)
- goto out_unlock;
+ goto err;
ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg);
if (ret) {
dev_err(&priv->client->dev,
"Write to IND_ACC_ADDR failed when writing %u:0x%02x: %d\n",
block, reg, ret);
- goto out_unlock;
+ goto err;
}
ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_DATA, val);
@@ -247,9 +241,7 @@ static int ub953_write_ind(struct ub953_data *priv, u8 block, u8 reg, u8 val,
block, reg, ret);
}
-out_unlock:
- mutex_unlock(&priv->reg_lock);
-
+err:
if (ret && err)
*err = ret;
--
2.34.1
On Wed, Sep 10, 2025 at 05:44:41PM +0800, Guoniu Zhou wrote: > Use guard() to simplify mutex locking. No functional change. > > Signed-off-by: Guoniu Zhou <guoniu.zhou@nxp.com> > --- Reviewed-by: Frank Li <Frank.Li@nxp.com> > drivers/media/i2c/ds90ub953.c | 34 +++++++++++++--------------------- > 1 file changed, 13 insertions(+), 21 deletions(-) > > diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c > index 6f09322553640384b1f43af0dbdf4f54b4ba004a..d7799531773ee32bf9f95eef30618cce9d479dd0 100644 > --- a/drivers/media/i2c/ds90ub953.c > +++ b/drivers/media/i2c/ds90ub953.c > @@ -112,20 +112,18 @@ static int ub953_read(struct ub953_data *priv, u8 reg, u8 *val, int *err) > if (err && *err) > return *err; > > - mutex_lock(&priv->reg_lock); > + guard(mutex)(&priv->reg_lock); > > ret = regmap_read(priv->regmap, reg, &v); > if (ret) { > dev_err(&priv->client->dev, "Cannot read register 0x%02x: %d\n", > reg, ret); > - goto out_unlock; > + goto err; > } > > *val = v; > > -out_unlock: > - mutex_unlock(&priv->reg_lock); > - > +err: > if (ret && err) > *err = ret; > > @@ -139,15 +137,13 @@ static int ub953_write(struct ub953_data *priv, u8 reg, u8 val, int *err) > if (err && *err) > return *err; > > - mutex_lock(&priv->reg_lock); > + guard(mutex)(&priv->reg_lock); > > ret = regmap_write(priv->regmap, reg, val); > if (ret) > dev_err(&priv->client->dev, > "Cannot write register 0x%02x: %d\n", reg, ret); > > - mutex_unlock(&priv->reg_lock); > - > if (ret && err) > *err = ret; > > @@ -184,18 +180,18 @@ static int ub953_read_ind(struct ub953_data *priv, u8 block, u8 reg, u8 *val, > if (err && *err) > return *err; > > - mutex_lock(&priv->reg_lock); > + guard(mutex)(&priv->reg_lock); > > ret = ub953_select_ind_reg_block(priv, block); > if (ret) > - goto out_unlock; > + goto err; > > ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg); > if (ret) { > dev_err(&priv->client->dev, > "Write to IND_ACC_ADDR failed when reading %u:0x%02x: %d\n", > block, reg, ret); > - goto out_unlock; > + goto err; > } > > ret = regmap_read(priv->regmap, UB953_REG_IND_ACC_DATA, &v); > @@ -203,14 +199,12 @@ static int ub953_read_ind(struct ub953_data *priv, u8 block, u8 reg, u8 *val, > dev_err(&priv->client->dev, > "Write to IND_ACC_DATA failed when reading %u:0x%02x: %d\n", > block, reg, ret); > - goto out_unlock; > + goto err; > } > > *val = v; > > -out_unlock: > - mutex_unlock(&priv->reg_lock); > - > +err: > if (ret && err) > *err = ret; > > @@ -226,18 +220,18 @@ static int ub953_write_ind(struct ub953_data *priv, u8 block, u8 reg, u8 val, > if (err && *err) > return *err; > > - mutex_lock(&priv->reg_lock); > + guard(mutex)(&priv->reg_lock); > > ret = ub953_select_ind_reg_block(priv, block); > if (ret) > - goto out_unlock; > + goto err; > > ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_ADDR, reg); > if (ret) { > dev_err(&priv->client->dev, > "Write to IND_ACC_ADDR failed when writing %u:0x%02x: %d\n", > block, reg, ret); > - goto out_unlock; > + goto err; > } > > ret = regmap_write(priv->regmap, UB953_REG_IND_ACC_DATA, val); > @@ -247,9 +241,7 @@ static int ub953_write_ind(struct ub953_data *priv, u8 block, u8 reg, u8 val, > block, reg, ret); > } > > -out_unlock: > - mutex_unlock(&priv->reg_lock); > - > +err: > if (ret && err) > *err = ret; > > > -- > 2.34.1 >
© 2016 - 2025 Red Hat, Inc.