]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: accel: mma8452: handle I2C read error(s) in mma8452_read()
authorSanjay Chitroda <sanjayembeddedse@gmail.com>
Tue, 5 May 2026 17:46:31 +0000 (23:16 +0530)
committerJonathan Cameron <jic23@kernel.org>
Sun, 31 May 2026 09:59:42 +0000 (10:59 +0100)
Currently, If i2c_smbus_read_i2c_block_data() fails but
mma8452_set_runtime_pm_state() succeeds, mma8452_read() returns 0.

As a result, the caller mma8452_read_raw() assumes the read was
successful and proceeds to use a buffer containing uninitialized
stack memory.

Add proper checking of the I2C read return value and propagate errors
to the caller.

Fixes: 96c0cb2bbfe0 ("iio: mma8452: add support for runtime power management")
Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/accel/mma8452.c

index 15172ba2972c590e5386189a47056bf3b1b8103a..cefc7cf4bd83530aed36a6b9caa611eda91f5eca 100644 (file)
@@ -252,6 +252,8 @@ static int mma8452_read(struct mma8452_data *data, __be16 buf[3])
 
        ret = i2c_smbus_read_i2c_block_data(data->client, MMA8452_OUT_X,
                                            3 * sizeof(__be16), (u8 *)buf);
+       if (ret < 0)
+               return ret;
 
        ret = mma8452_set_runtime_pm_state(data->client, false);