diff mbox series

iio: imu: st_lsm6dsx: use dev_to_iio_dev() to get iio_dev struct

Message ID 1645702191-9400-1-git-send-email-haibo.chen@nxp.com (mailing list archive)
State Accepted
Headers show
Series iio: imu: st_lsm6dsx: use dev_to_iio_dev() to get iio_dev struct | expand

Commit Message

Bough Chen Feb. 24, 2022, 11:29 a.m. UTC
From: Haibo Chen <haibo.chen@nxp.com>

After commit 8b7651f25962 ("iio: iio_device_alloc(): Remove
unnecessary self drvdata"), current driver will meet kernel dump,
kernel handle NULL pointer dereference.

Use dev_to_iio_dev() to get iio_dev struct.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
---
 drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jonathan Cameron Feb. 26, 2022, 6:19 p.m. UTC | #1
On Thu, 24 Feb 2022 19:29:51 +0800
haibo.chen@nxp.com wrote:

> From: Haibo Chen <haibo.chen@nxp.com>
> 
> After commit 8b7651f25962 ("iio: iio_device_alloc(): Remove
> unnecessary self drvdata"), current driver will meet kernel dump,
> kernel handle NULL pointer dereference.
Formal Fixes tag needed, but I can turn this into one whilst applying
and modify this description to talk about what no longer works rather
than the patch.
> 
> Use dev_to_iio_dev() to get iio_dev struct.
> 
> Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Looks correct to me, so I'll queue it up in the iio/fixes-togreg branch.

Applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> ---
>  drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> index 93f0c6bce502..b1d8d5a66f01 100644
> --- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> +++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
> @@ -1633,7 +1633,7 @@ st_lsm6dsx_sysfs_sampling_frequency_avail(struct device *dev,
>  					  struct device_attribute *attr,
>  					  char *buf)
>  {
> -	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev));
> +	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_to_iio_dev(dev));
>  	const struct st_lsm6dsx_odr_table_entry *odr_table;
>  	int i, len = 0;
>  
> @@ -1651,7 +1651,7 @@ static ssize_t st_lsm6dsx_sysfs_scale_avail(struct device *dev,
>  					    struct device_attribute *attr,
>  					    char *buf)
>  {
> -	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev));
> +	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_to_iio_dev(dev));
>  	const struct st_lsm6dsx_fs_table_entry *fs_table;
>  	struct st_lsm6dsx_hw *hw = sensor->hw;
>  	int i, len = 0;
diff mbox series

Patch

diff --git a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
index 93f0c6bce502..b1d8d5a66f01 100644
--- a/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
+++ b/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c
@@ -1633,7 +1633,7 @@  st_lsm6dsx_sysfs_sampling_frequency_avail(struct device *dev,
 					  struct device_attribute *attr,
 					  char *buf)
 {
-	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev));
+	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_to_iio_dev(dev));
 	const struct st_lsm6dsx_odr_table_entry *odr_table;
 	int i, len = 0;
 
@@ -1651,7 +1651,7 @@  static ssize_t st_lsm6dsx_sysfs_scale_avail(struct device *dev,
 					    struct device_attribute *attr,
 					    char *buf)
 {
-	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_get_drvdata(dev));
+	struct st_lsm6dsx_sensor *sensor = iio_priv(dev_to_iio_dev(dev));
 	const struct st_lsm6dsx_fs_table_entry *fs_table;
 	struct st_lsm6dsx_hw *hw = sensor->hw;
 	int i, len = 0;