]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: bmi323: fix copy and paste bugs in suspend resume
authorDan Carpenter <dan.carpenter@linaro.org>
Mon, 16 Sep 2024 14:09:10 +0000 (17:09 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 30 Sep 2024 08:20:54 +0000 (09:20 +0100)
This code is using bmi323_reg_savestate[] and ->reg_settings[] instead
of bmi323_ext_reg_savestate[] and ->ext_reg_settings[].  This was
discovered by Smatch:

    drivers/iio/imu/bmi323/bmi323_core.c:2202 bmi323_core_runtime_suspend()
    error: buffer overflow 'bmi323_reg_savestate' 9 <= 11

Fixes: 16531118ba63 ("iio: bmi323: peripheral in lowest power state on suspend")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/7175b8ec-85cf-4fbf-a4e1-c4c43c3b665c@stanley.mountain
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/bmi323/bmi323_core.c

index 1d1405d37c5adb2717fc27d6b22540da50dea6d4..c953501c2a755922c58f237fe0911c1a9bd565a6 100644 (file)
@@ -2198,12 +2198,12 @@ static int bmi323_core_runtime_suspend(struct device *dev)
        }
 
        for (unsigned int i = 0; i < ARRAY_SIZE(bmi323_ext_reg_savestate); i++) {
-               ret = bmi323_read_ext_reg(data, bmi323_reg_savestate[i],
-                                         &savestate->reg_settings[i]);
+               ret = bmi323_read_ext_reg(data, bmi323_ext_reg_savestate[i],
+                                         &savestate->ext_reg_settings[i]);
                if (ret) {
                        dev_err(data->dev,
                                "Error reading bmi323 external reg 0x%x: %d\n",
-                               bmi323_reg_savestate[i], ret);
+                               bmi323_ext_reg_savestate[i], ret);
                        return ret;
                }
        }
@@ -2242,12 +2242,12 @@ static int bmi323_core_runtime_resume(struct device *dev)
        }
 
        for (unsigned int i = 0; i < ARRAY_SIZE(bmi323_ext_reg_savestate); i++) {
-               ret = bmi323_write_ext_reg(data, bmi323_reg_savestate[i],
-                                          savestate->reg_settings[i]);
+               ret = bmi323_write_ext_reg(data, bmi323_ext_reg_savestate[i],
+                                          savestate->ext_reg_settings[i]);
                if (ret) {
                        dev_err(data->dev,
                                "Error writing bmi323 external reg 0x%x: %d\n",
-                               bmi323_reg_savestate[i], ret);
+                               bmi323_ext_reg_savestate[i], ret);
                        return ret;
                }
        }