Re: [PATCH v2] iio: chemical: ags02ma: Check for short I2C reads
From: Jonathan Cameron
Date: Sat Oct 17 2026 - 14:18:24 EST
On Sat, 17 Oct 2026 15:16:39 +0530
Nikhil Gautam <nikhilgtr@xxxxxxxxx> wrote:
> Check that the I2C receive operation transfers the expected number
> of bytes before accessing the received data.
>
> Return -EIO if the transfer is incomplete.
>
> Fixes: d58013f39b30 ("iio: chemical: add support for Aosong AGS02MA")
> Signed-off-by: Nikhil Gautam <nikhilgtr@xxxxxxxxx>
Hi Nikhil,
Given in practice we are very unlikely to ever see this condition I've
not rushed this one in. Next cycle is soon enough.
As such, applied to the testing branch of iio.git.
Jonathan
> ---
> drivers/iio/chemical/ags02ma.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/iio/chemical/ags02ma.c b/drivers/iio/chemical/ags02ma.c
> index 151178d4e8f4..2219965d044f 100644
> --- a/drivers/iio/chemical/ags02ma.c
> +++ b/drivers/iio/chemical/ags02ma.c
> @@ -61,6 +61,12 @@ static int ags02ma_register_read(struct i2c_client *client, u8 reg, u16 delay,
> return ret;
> }
>
> + if (ret != sizeof(read_buffer)) {
> + dev_err(&client->dev,
> + "Short read from register 0x%x\n", reg);
> + return -EIO;
> + }
> +
> crc = crc8(ags02ma_crc8_table, (u8 *)&read_buffer.data,
> sizeof(read_buffer.data), AGS02MA_CRC8_INIT);
> if (crc != read_buffer.crc) {