]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
iio: imu: bmi160: Remove potential undefined behavior in bmi160_config_pin()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 10 Mar 2026 03:45:45 +0000 (20:45 -0700)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 15 Mar 2026 12:20:34 +0000 (12:20 +0000)
commitc05a87d9ec3bf8727a5d746ce855003c6f2f8bb4
tree324a069c0bc7b9972c125d1d93992047ceaa6666
parent79a86a6cc3669416a21fef32d0767d39ba84b3aa
iio: imu: bmi160: Remove potential undefined behavior in bmi160_config_pin()

If 'pin' is not one of its expected values, the value of
'int_out_ctrl_shift' is undefined.  With UBSAN enabled, this causes
Clang to generate undefined behavior, resulting in the following
warning:

  drivers/iio/imu/bmi160/bmi160_core.o: warning: objtool: bmi160_setup_irq() falls through to next function __cfi_bmi160_core_runtime_resume()

Prevent the UB and improve error handling by returning an error if 'pin'
has an unexpected value.

While at it, simplify the code a bit by moving the 'pin_name' assignment
to the first switch statement.

Fixes: 895bf81e6bbf ("iio:bmi160: add drdy interrupt support")
Reported-by: Arnd Bergmann <arnd@arndb.de>
Closes: https://lore.kernel.org/a426d669-58bb-4be1-9eaa-6f3d83109e2d@app.fastmail.com
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/imu/bmi160/bmi160_core.c