* [PATCH] iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()
@ 2020-04-22 9:38 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2020-04-22 9:38 UTC (permalink / raw)
To: Lorenzo Bianconi
Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, kernel-janitors
We need to release a lock if st_lsm6dsx_check_odr() fails, we can't
return directly.
Fixes: 76551a3c3df1 ("iio: imu: st_lsm6dsx: specify slave odr in slv_odr")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
index 64ef07a30726..1cf98195f84d 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
@@ -544,8 +544,10 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
- if (odr < 0)
- return odr;
+ if (odr < 0) {
+ err = odr;
+ goto release;
+ }
sensor->ext_info.slv_odr = val;
sensor->odr = odr;
@@ -557,6 +559,7 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
break;
}
+release:
iio_device_release_direct_mode(iio_dev);
return err;
--
2.26.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()
@ 2020-04-22 9:38 ` Dan Carpenter
0 siblings, 0 replies; 4+ messages in thread
From: Dan Carpenter @ 2020-04-22 9:38 UTC (permalink / raw)
To: Lorenzo Bianconi
Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, kernel-janitors
We need to release a lock if st_lsm6dsx_check_odr() fails, we can't
return directly.
Fixes: 76551a3c3df1 ("iio: imu: st_lsm6dsx: specify slave odr in slv_odr")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
index 64ef07a30726..1cf98195f84d 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
@@ -544,8 +544,10 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
- if (odr < 0)
- return odr;
+ if (odr < 0) {
+ err = odr;
+ goto release;
+ }
sensor->ext_info.slv_odr = val;
sensor->odr = odr;
@@ -557,6 +559,7 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
break;
}
+release:
iio_device_release_direct_mode(iio_dev);
return err;
--
2.26.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()
2020-04-22 9:38 ` Dan Carpenter
@ 2020-04-25 17:34 ` Jonathan Cameron
-1 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2020-04-25 17:34 UTC (permalink / raw)
To: Dan Carpenter
Cc: Lorenzo Bianconi, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, kernel-janitors
On Wed, 22 Apr 2020 12:38:11 +0300
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> We need to release a lock if st_lsm6dsx_check_odr() fails, we can't
> return directly.
>
> Fixes: 76551a3c3df1 ("iio: imu: st_lsm6dsx: specify slave odr in slv_odr")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Good find.
Applied to the fixes-togreg branch of iio.git.
Thanks,
Jonathan
> ---
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> index 64ef07a30726..1cf98195f84d 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> @@ -544,8 +544,10 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
>
> ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
> odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
> - if (odr < 0)
> - return odr;
> + if (odr < 0) {
> + err = odr;
> + goto release;
> + }
>
> sensor->ext_info.slv_odr = val;
> sensor->odr = odr;
> @@ -557,6 +559,7 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
> break;
> }
>
> +release:
> iio_device_release_direct_mode(iio_dev);
>
> return err;
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw()
@ 2020-04-25 17:34 ` Jonathan Cameron
0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2020-04-25 17:34 UTC (permalink / raw)
To: Dan Carpenter
Cc: Lorenzo Bianconi, Hartmut Knaack, Lars-Peter Clausen,
Peter Meerwald-Stadler, linux-iio, kernel-janitors
On Wed, 22 Apr 2020 12:38:11 +0300
Dan Carpenter <dan.carpenter@oracle.com> wrote:
> We need to release a lock if st_lsm6dsx_check_odr() fails, we can't
> return directly.
>
> Fixes: 76551a3c3df1 ("iio: imu: st_lsm6dsx: specify slave odr in slv_odr")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Good find.
Applied to the fixes-togreg branch of iio.git.
Thanks,
Jonathan
> ---
> drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> index 64ef07a30726..1cf98195f84d 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c
> @@ -544,8 +544,10 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
>
> ref_sensor = iio_priv(hw->iio_devs[ST_LSM6DSX_ID_ACC]);
> odr = st_lsm6dsx_check_odr(ref_sensor, val, &odr_val);
> - if (odr < 0)
> - return odr;
> + if (odr < 0) {
> + err = odr;
> + goto release;
> + }
>
> sensor->ext_info.slv_odr = val;
> sensor->odr = odr;
> @@ -557,6 +559,7 @@ st_lsm6dsx_shub_write_raw(struct iio_dev *iio_dev,
> break;
> }
>
> +release:
> iio_device_release_direct_mode(iio_dev);
>
> return err;
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-04-25 17:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-22 9:38 [PATCH] iio: imu: st_lsm6dsx: unlock on error in st_lsm6dsx_shub_write_raw() Dan Carpenter
2020-04-22 9:38 ` Dan Carpenter
2020-04-25 17:34 ` Jonathan Cameron
2020-04-25 17:34 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.