drivers/iio/imu/bno055/bno055.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Fix an off-by-one error in the BNO055_SCAN_CH_COUNT macro. The count
is derived by taking the difference of the last and first register
addresses, dividing by the size of each channel (2 bytes). It needs to
also add 1 to account for the fact that the count is inclusive of both
the first and last channels.
Thanks to the aligned_s64 timestamp field, there was already extra
padding in the buffer, so there were no runtime issues caused by this
bug.
Signed-off-by: David Lechner <dlechner@baylibre.com>
---
I didn't put a Fixes: tag since this there were no runtime bugs. Didn't
know if this was worth backporting or not.
---
drivers/iio/imu/bno055/bno055.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iio/imu/bno055/bno055.c b/drivers/iio/imu/bno055/bno055.c
index 303bc308f80a..c96fec2ebb3e 100644
--- a/drivers/iio/imu/bno055/bno055.c
+++ b/drivers/iio/imu/bno055/bno055.c
@@ -64,7 +64,7 @@
#define BNO055_GRAVITY_DATA_X_LSB_REG 0x2E
#define BNO055_GRAVITY_DATA_Y_LSB_REG 0x30
#define BNO055_GRAVITY_DATA_Z_LSB_REG 0x32
-#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2)
+#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2 + 1)
#define BNO055_TEMP_REG 0x34
#define BNO055_CALIB_STAT_REG 0x35
#define BNO055_CALIB_STAT_MAGN_SHIFT 0
---
base-commit: 0713b26190addfa3a774b386c8658952ef9f7faf
change-id: 20260214-iio-imu-bno055-count-off-by-one-3b67a0caaaf6
Best regards,
--
David Lechner <dlechner@baylibre.com>
On Sat, 14 Feb 2026 16:33:54 -0600 David Lechner <dlechner@baylibre.com> wrote: > Fix an off-by-one error in the BNO055_SCAN_CH_COUNT macro. The count > is derived by taking the difference of the last and first register > addresses, dividing by the size of each channel (2 bytes). It needs to > also add 1 to account for the fact that the count is inclusive of both > the first and last channels. > > Thanks to the aligned_s64 timestamp field, there was already extra > padding in the buffer, so there were no runtime issues caused by this > bug. > > Signed-off-by: David Lechner <dlechner@baylibre.com> > --- > I didn't put a Fixes: tag since this there were no runtime bugs. Didn't > know if this was worth backporting or not. I took the view that it isn't obvious that this is not a bug and hence it might confuse readers in the future. So I gave it fixes tag. Still I didn't +CC stable as agree there is no urgency to backport. Applied to the fixes-togreg branch of iio.git. Thanks, Jonathan > --- > drivers/iio/imu/bno055/bno055.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/imu/bno055/bno055.c b/drivers/iio/imu/bno055/bno055.c > index 303bc308f80a..c96fec2ebb3e 100644 > --- a/drivers/iio/imu/bno055/bno055.c > +++ b/drivers/iio/imu/bno055/bno055.c > @@ -64,7 +64,7 @@ > #define BNO055_GRAVITY_DATA_X_LSB_REG 0x2E > #define BNO055_GRAVITY_DATA_Y_LSB_REG 0x30 > #define BNO055_GRAVITY_DATA_Z_LSB_REG 0x32 > -#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2) > +#define BNO055_SCAN_CH_COUNT ((BNO055_GRAVITY_DATA_Z_LSB_REG - BNO055_ACC_DATA_X_LSB_REG) / 2 + 1) > #define BNO055_TEMP_REG 0x34 > #define BNO055_CALIB_STAT_REG 0x35 > #define BNO055_CALIB_STAT_MAGN_SHIFT 0 > > --- > base-commit: 0713b26190addfa3a774b386c8658952ef9f7faf > change-id: 20260214-iio-imu-bno055-count-off-by-one-3b67a0caaaf6 > > Best regards,
© 2016 - 2026 Red Hat, Inc.