From: kernel test robot <lkp@intel.com>
To: Maxwell Doose <m32285159@gmail.com>, jic23@kernel.org
Cc: oe-kbuild-all@lists.linux.dev,
"David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] iio: imu: kmx61: Use guard(mutex)() family over manual locking
Date: Thu, 14 May 2026 11:44:10 +0800 [thread overview]
Message-ID: <202605141121.82vp1RMY-lkp@intel.com> (raw)
In-Reply-To: <20260505005506.160891-1-m32285159@gmail.com>
Hi Maxwell,
kernel test robot noticed the following build errors:
[auto build test ERROR on 7fd2df204f342fc17d1a0bfcd474b24232fb0f32]
url: https://github.com/intel-lab-lkp/linux/commits/Maxwell-Doose/iio-imu-kmx61-Use-guard-mutex-family-over-manual-locking/20260514-043249
base: 7fd2df204f342fc17d1a0bfcd474b24232fb0f32
patch link: https://lore.kernel.org/r/20260505005506.160891-1-m32285159%40gmail.com
patch subject: [PATCH v2] iio: imu: kmx61: Use guard(mutex)() family over manual locking
config: i386-randconfig-141-20260514 (https://download.01.org/0day-ci/archive/20260514/202605141121.82vp1RMY-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9185-gbcc58b9c
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260514/202605141121.82vp1RMY-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605141121.82vp1RMY-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/iio/imu/kmx61.c:829:2: error: cannot jump from switch statement to this case label
829 | case IIO_CHAN_INFO_SAMP_FREQ:
| ^
drivers/iio/imu/kmx61.c:798:3: note: jump bypasses initialization of variable with __attribute__((cleanup))
798 | guard(mutex)(&data->lock);
| ^
include/linux/cleanup.h:422:2: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/cleanup.h:303:3: note: expanded from macro 'CLASS'
303 | class_##_name##_constructor
| ^
<scratch space>:112:1: note: expanded from here
112 | class_mutex_constructor
| ^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:118:1: note: expanded from here
118 | __UNIQUE_ID_unlock_385
| ^
drivers/iio/imu/kmx61.c:798:3: note: jump bypasses initialization of variable with __attribute__((cleanup))
include/linux/cleanup.h:422:15: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:165:2: note: expanded from macro '__UNIQUE_ID'
165 | __PASTE(__UNIQUE_ID_, \
| ^
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:106:1: note: expanded from here
106 | __UNIQUE_ID_guard_384
| ^
drivers/iio/imu/kmx61.c:815:2: error: cannot jump from switch statement to this case label
815 | case IIO_CHAN_INFO_SCALE:
| ^
drivers/iio/imu/kmx61.c:798:3: note: jump bypasses initialization of variable with __attribute__((cleanup))
798 | guard(mutex)(&data->lock);
| ^
include/linux/cleanup.h:422:2: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/cleanup.h:303:3: note: expanded from macro 'CLASS'
303 | class_##_name##_constructor
| ^
<scratch space>:112:1: note: expanded from here
112 | class_mutex_constructor
| ^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:118:1: note: expanded from here
118 | __UNIQUE_ID_unlock_385
| ^
drivers/iio/imu/kmx61.c:798:3: note: jump bypasses initialization of variable with __attribute__((cleanup))
include/linux/cleanup.h:422:15: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:165:2: note: expanded from macro '__UNIQUE_ID'
165 | __PASTE(__UNIQUE_ID_, \
| ^
include/linux/compiler_types.h:16:23: note: expanded from macro '__PASTE'
16 | #define __PASTE(a, b) ___PASTE(a, b)
| ^
include/linux/compiler_types.h:15:24: note: expanded from macro '___PASTE'
15 | #define ___PASTE(a, b) a##b
| ^
<scratch space>:106:1: note: expanded from here
106 | __UNIQUE_ID_guard_384
| ^
drivers/iio/imu/kmx61.c:846:6: warning: unused variable 'ret' [-Wunused-variable]
846 | int ret;
| ^~~
drivers/iio/imu/kmx61.c:863:3: error: cannot jump from switch statement to this case label
863 | default:
| ^
drivers/iio/imu/kmx61.c:861:4: note: jump bypasses initialization of variable with __attribute__((cleanup))
861 | guard(mutex)(&data->lock);
| ^
include/linux/cleanup.h:422:2: note: expanded from macro 'guard'
422 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/cleanup.h:303:3: note: expanded from macro 'CLASS'
303 | class_##_name##_constructor
| ^
<scratch space>:170:1: note: expanded from here
170 | class_mutex_constructor
| ^
note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
vim +829 drivers/iio/imu/kmx61.c
20ffac278ebd64 Daniel Baluta 2014-12-03 777
20ffac278ebd64 Daniel Baluta 2014-12-03 778 static int kmx61_read_raw(struct iio_dev *indio_dev,
20ffac278ebd64 Daniel Baluta 2014-12-03 779 struct iio_chan_spec const *chan, int *val,
20ffac278ebd64 Daniel Baluta 2014-12-03 780 int *val2, long mask)
20ffac278ebd64 Daniel Baluta 2014-12-03 781 {
20ffac278ebd64 Daniel Baluta 2014-12-03 782 int ret;
20ffac278ebd64 Daniel Baluta 2014-12-03 783 u8 base_reg;
20ffac278ebd64 Daniel Baluta 2014-12-03 784 struct kmx61_data *data = kmx61_get_data(indio_dev);
20ffac278ebd64 Daniel Baluta 2014-12-03 785
20ffac278ebd64 Daniel Baluta 2014-12-03 786 switch (mask) {
20ffac278ebd64 Daniel Baluta 2014-12-03 787 case IIO_CHAN_INFO_RAW:
20ffac278ebd64 Daniel Baluta 2014-12-03 788 switch (chan->type) {
20ffac278ebd64 Daniel Baluta 2014-12-03 789 case IIO_ACCEL:
20ffac278ebd64 Daniel Baluta 2014-12-03 790 base_reg = KMX61_ACC_XOUT_L;
20ffac278ebd64 Daniel Baluta 2014-12-03 791 break;
20ffac278ebd64 Daniel Baluta 2014-12-03 792 case IIO_MAGN:
20ffac278ebd64 Daniel Baluta 2014-12-03 793 base_reg = KMX61_MAG_XOUT_L;
20ffac278ebd64 Daniel Baluta 2014-12-03 794 break;
20ffac278ebd64 Daniel Baluta 2014-12-03 795 default:
20ffac278ebd64 Daniel Baluta 2014-12-03 796 return -EINVAL;
20ffac278ebd64 Daniel Baluta 2014-12-03 797 }
45e0524c69702c Maxwell Doose 2026-05-04 798 guard(mutex)(&data->lock);
20ffac278ebd64 Daniel Baluta 2014-12-03 799
a3da4fa301ae60 Daniel Baluta 2014-12-23 800 ret = kmx61_set_power_state(data, true, chan->address);
45e0524c69702c Maxwell Doose 2026-05-04 801 if (ret)
a3da4fa301ae60 Daniel Baluta 2014-12-23 802 return ret;
a3da4fa301ae60 Daniel Baluta 2014-12-23 803
20ffac278ebd64 Daniel Baluta 2014-12-03 804 ret = kmx61_read_measurement(data, base_reg, chan->scan_index);
20ffac278ebd64 Daniel Baluta 2014-12-03 805 if (ret < 0) {
aff8609addd00e Daniel Baluta 2014-12-03 806 kmx61_set_power_state(data, false, chan->address);
20ffac278ebd64 Daniel Baluta 2014-12-03 807 return ret;
20ffac278ebd64 Daniel Baluta 2014-12-03 808 }
20ffac278ebd64 Daniel Baluta 2014-12-03 809 *val = sign_extend32(ret >> chan->scan_type.shift,
20ffac278ebd64 Daniel Baluta 2014-12-03 810 chan->scan_type.realbits - 1);
a3da4fa301ae60 Daniel Baluta 2014-12-23 811 ret = kmx61_set_power_state(data, false, chan->address);
a3da4fa301ae60 Daniel Baluta 2014-12-23 812 if (ret)
a3da4fa301ae60 Daniel Baluta 2014-12-23 813 return ret;
20ffac278ebd64 Daniel Baluta 2014-12-03 814 return IIO_VAL_INT;
20ffac278ebd64 Daniel Baluta 2014-12-03 815 case IIO_CHAN_INFO_SCALE:
20ffac278ebd64 Daniel Baluta 2014-12-03 816 switch (chan->type) {
20ffac278ebd64 Daniel Baluta 2014-12-03 817 case IIO_ACCEL:
20ffac278ebd64 Daniel Baluta 2014-12-03 818 *val = 0;
20ffac278ebd64 Daniel Baluta 2014-12-03 819 *val2 = kmx61_uscale_table[data->range];
20ffac278ebd64 Daniel Baluta 2014-12-03 820 return IIO_VAL_INT_PLUS_MICRO;
20ffac278ebd64 Daniel Baluta 2014-12-03 821 case IIO_MAGN:
20ffac278ebd64 Daniel Baluta 2014-12-03 822 /* 14 bits res, 1465 microGauss per magn count */
20ffac278ebd64 Daniel Baluta 2014-12-03 823 *val = 0;
20ffac278ebd64 Daniel Baluta 2014-12-03 824 *val2 = 1465;
20ffac278ebd64 Daniel Baluta 2014-12-03 825 return IIO_VAL_INT_PLUS_MICRO;
20ffac278ebd64 Daniel Baluta 2014-12-03 826 default:
20ffac278ebd64 Daniel Baluta 2014-12-03 827 return -EINVAL;
20ffac278ebd64 Daniel Baluta 2014-12-03 828 }
20ffac278ebd64 Daniel Baluta 2014-12-03 @829 case IIO_CHAN_INFO_SAMP_FREQ:
20ffac278ebd64 Daniel Baluta 2014-12-03 830 if (chan->type != IIO_ACCEL && chan->type != IIO_MAGN)
20ffac278ebd64 Daniel Baluta 2014-12-03 831 return -EINVAL;
20ffac278ebd64 Daniel Baluta 2014-12-03 832
45e0524c69702c Maxwell Doose 2026-05-04 833 scoped_guard(mutex, &data->lock)
20ffac278ebd64 Daniel Baluta 2014-12-03 834 ret = kmx61_get_odr(data, val, val2, chan->address);
20ffac278ebd64 Daniel Baluta 2014-12-03 835 if (ret)
20ffac278ebd64 Daniel Baluta 2014-12-03 836 return -EINVAL;
20ffac278ebd64 Daniel Baluta 2014-12-03 837 return IIO_VAL_INT_PLUS_MICRO;
20ffac278ebd64 Daniel Baluta 2014-12-03 838 }
20ffac278ebd64 Daniel Baluta 2014-12-03 839 return -EINVAL;
20ffac278ebd64 Daniel Baluta 2014-12-03 840 }
20ffac278ebd64 Daniel Baluta 2014-12-03 841
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-05-14 3:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-05 0:55 [PATCH v2] iio: imu: kmx61: Use guard(mutex)() family over manual locking Maxwell Doose
2026-05-05 4:46 ` Maxwell Doose
2026-05-05 7:25 ` Andy Shevchenko
2026-05-05 7:56 ` Markus Elfring
2026-05-14 3:44 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202605141121.82vp1RMY-lkp@intel.com \
--to=lkp@intel.com \
--cc=andy@kernel.org \
--cc=dlechner@baylibre.com \
--cc=jic23@kernel.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m32285159@gmail.com \
--cc=nuno.sa@analog.com \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.