On Thu, 24 Feb 2022 19:29:51 +0800 haibo.chen@xxxxxxx wrote: > From: Haibo Chen <haibo.chen@xxxxxxx> > > 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@xxxxxxx> 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;