On Wed, 8 Jan 2025 22:29:40 +0100 Vasileios Amoiridis <vassilisamir@xxxxxxxxx> wrote: > On Wed, Jan 08, 2025 at 12:37:22PM +0300, Dan Carpenter wrote: > > The bme680_read_temp() function takes a pointer to s16 but we're passing > > an int pointer to it. This will not work on big endian systems and it > > also means that the other 16 bits are uninitialized. > > > > Pass an s16 type variable. > > > > Fixes: f51171ce2236 ("iio: chemical: bme680: Add SCALE and RAW channels") > > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > --- > > drivers/iio/chemical/bme680_core.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/iio/chemical/bme680_core.c b/drivers/iio/chemical/bme680_core.c > > index 26eb0fa77a43..9d73fd2cf52c 100644 > > --- a/drivers/iio/chemical/bme680_core.c > > +++ b/drivers/iio/chemical/bme680_core.c > > @@ -879,11 +879,11 @@ static int __bme680_read_raw(struct iio_dev *indio_dev, > > case IIO_CHAN_INFO_RAW: > > switch (chan->type) { > > case IIO_TEMP: > > - ret = bme680_read_temp(data, (s16 *)&chan_val); > > + ret = bme680_read_temp(data, &temp_chan_val); > > if (ret) > > return ret; > > > > - *val = chan_val; > > + *val = temp_chan_val; > > return IIO_VAL_INT; > > case IIO_PRESSURE: > > ret = bme680_read_press(data, &chan_val); > > -- > > 2.45.2 > > > > Acked-by: Vasileios Amoiridis <vassilisamir@xxxxxxxxx> > > Hi Dan, > > I had already applied this for IIO_CHAN_INFO_PROCESSED but not for the > IIO_CHAN_INFO_RAW channel... Very good that you spotted it! Applied to the fixes-togreg branch of iio.git and marked for stable. Most likely will go in during the merge window or slightly after. > > Cheers, > Vasilis >