CC: [email protected] CC: [email protected] In-Reply-To: <eaee0947c813b04b77ee8364724d1a406dccc33b.1634029538.git.krzysztof.adam...@nokia.com> References: <eaee0947c813b04b77ee8364724d1a406dccc33b.1634029538.git.krzysztof.adam...@nokia.com> TO: Krzysztof Adamski <[email protected]>
Hi Krzysztof, I love your patch! Perhaps something to improve: [auto build test WARNING on groeck-staging/hwmon-next] [cannot apply to robh/for-next v5.16-rc1 next-20211115] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Krzysztof-Adamski/Add-per-channel-properies-support-in-tmp421/20211012-173142 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next :::::: branch date: 5 weeks ago :::::: commit date: 5 weeks ago config: arm-randconfig-c002-20211013 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a8c695542b2987eb9a203d5663a0740cb4725f) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/4a0f8262fe071b0b27c6fba7455627f3c5a5209e git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Krzysztof-Adamski/Add-per-channel-properies-support-in-tmp421/20211012-173142 git checkout 4a0f8262fe071b0b27c6fba7455627f3c5a5209e # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ include/linux/hid.h:1005:28: note: Assuming 'bmap' is null if (unlikely(c > limit || !bmap)) { ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ include/linux/hid.h:1005:2: note: Taking true branch if (unlikely(c > limit || !bmap)) { ^ include/linux/hid.h:1006:3: note: Assuming the condition is true pr_warn_ratelimited("%s: Invalid code %d type %d\n", ^ include/linux/printk.h:656:2: note: expanded from macro 'pr_warn_ratelimited' printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/printk.h:639:6: note: expanded from macro 'printk_ratelimited' if (__ratelimit(&_rs)) \ ^~~~~~~~~~~~~~~~~ include/linux/ratelimit_types.h:41:28: note: expanded from macro '__ratelimit' #define __ratelimit(state) ___ratelimit(state, __func__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/hid.h:1006:3: note: Taking true branch pr_warn_ratelimited("%s: Invalid code %d type %d\n", ^ include/linux/printk.h:656:2: note: expanded from macro 'pr_warn_ratelimited' printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:639:2: note: expanded from macro 'printk_ratelimited' if (__ratelimit(&_rs)) \ ^ include/linux/hid.h:1006:3: note: Loop condition is false. Exiting loop pr_warn_ratelimited("%s: Invalid code %d type %d\n", ^ include/linux/printk.h:656:2: note: expanded from macro 'pr_warn_ratelimited' printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^ include/linux/printk.h:640:3: note: expanded from macro 'printk_ratelimited' printk(fmt, ##__VA_ARGS__); \ ^ include/linux/printk.h:446:26: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^ include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap' __printk_index_emit(_fmt, NULL, NULL); \ ^ include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit' #define __printk_index_emit(...) do {} while (0) ^ include/linux/hid.h:1007:9: note: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input') input->name, c, type); ^ include/linux/printk.h:656:49: note: expanded from macro 'pr_warn_ratelimited' printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~ include/linux/printk.h:640:17: note: expanded from macro 'printk_ratelimited' printk(fmt, ##__VA_ARGS__); \ ^~~~~~~~~~~ include/linux/printk.h:446:60: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^~~~~~~~~~~ include/linux/printk.h:418:19: note: expanded from macro 'printk_index_wrap' _p_func(_fmt, ##__VA_ARGS__); \ ^~~~~~~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. drivers/media/i2c/imx258.c:781:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = imx258_write_reg(imx258, IMX258_REG_TEST_PATTERN, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/media/i2c/imx258.c:781:3: note: Value stored to 'ret' is never read ret = imx258_write_reg(imx258, IMX258_REG_TEST_PATTERN, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. >> drivers/hwmon/tmp421.c:178:3: warning: Undefined or garbage value returned >> to caller [clang-analyzer-core.uninitialized.UndefReturn] return err; ^ drivers/hwmon/tmp421.c:410:6: note: Assuming 'data' is non-null if (!data) ^~~~~ drivers/hwmon/tmp421.c:410:2: note: Taking false branch if (!data) ^ drivers/hwmon/tmp421.c:413:2: note: Loop condition is false. Exiting loop mutex_init(&data->update_lock); ^ include/linux/mutex.h:101:32: note: expanded from macro 'mutex_init' #define mutex_init(mutex) \ ^ drivers/hwmon/tmp421.c:414:6: note: Assuming field 'of_node' is null if (client->dev.of_node) ^~~~~~~~~~~~~~~~~~~ drivers/hwmon/tmp421.c:414:2: note: Taking false branch if (client->dev.of_node) ^ drivers/hwmon/tmp421.c:421:14: note: Assuming 'i' is >= field 'channels' for (i = 0; i < data->channels; i++) { ^~~~~~~~~~~~~~~~~~ drivers/hwmon/tmp421.c:421:2: note: Loop condition is false. Execution continues on line 426 for (i = 0; i < data->channels; i++) { ^ drivers/hwmon/tmp421.c:427:6: note: 'err' is 0 if (err) ^~~ drivers/hwmon/tmp421.c:427:2: note: Taking false branch if (err) ^ drivers/hwmon/tmp421.c:430:8: note: Calling 'tmp421_init_client' err = tmp421_init_client(data); ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/tmp421.c:258:6: note: Assuming 'config' is >= 0 if (config < 0) { ^~~~~~~~~~ drivers/hwmon/tmp421.c:258:2: note: Taking false branch if (config < 0) { ^ drivers/hwmon/tmp421.c:267:6: note: Assuming 'config' is equal to 'config_orig' if (config != config_orig) { ^~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/tmp421.c:267:2: note: Taking false branch if (config != config_orig) { ^ drivers/hwmon/tmp421.c:272:9: note: Calling 'tmp421_enable_channels' return tmp421_enable_channels(data); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/hwmon/tmp421.c:170:2: note: 'err' declared without an initial value int err; ^~~~~~~ drivers/hwmon/tmp421.c:176:6: note: Assuming 'cfg' is < 0 if (cfg < 0) { ^~~~~~~ drivers/hwmon/tmp421.c:176:2: note: Taking true branch if (cfg < 0) { ^ drivers/hwmon/tmp421.c:177:3: note: Loop condition is false. Exiting loop dev_err(dev, "error reading register, can't disable channels\n"); ^ include/linux/dev_printk.h:144:2: note: expanded from macro 'dev_err' dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) ^ include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap' dev_printk_index_emit(level, fmt); \ ^ include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit' printk_index_subsys_emit("%s %s: ", level, fmt) ^ include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit' __printk_index_emit(fmt, level, subsys_fmt_prefix) ^ include/linux/printk.h:392:34: note: expanded from macro '__printk_index_emit' #define __printk_index_emit(...) do {} while (0) ^ drivers/hwmon/tmp421.c:178:3: note: Undefined or garbage value returned to caller return err; ^ ~~~ Suppressed 3 warnings (2 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. vim +178 drivers/hwmon/tmp421.c 9410700b881f867 Andre Prendel 2009-09-15 167 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 168 static int tmp421_enable_channels(struct tmp421_data *data) 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 169 { 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 170 int err; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 171 struct i2c_client *client = data->client; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 172 struct device *dev = &client->dev; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 173 int cfg = i2c_smbus_read_byte_data(client, TMP421_CONFIG_REG_2); 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 174 int i; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 175 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 176 if (cfg < 0) { 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 177 dev_err(dev, "error reading register, can't disable channels\n"); 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 @178 return err; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 179 } 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 180 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 181 cfg &= ~TMP421_CONFIG_REG_REN_MASK; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 182 for (i = 0; i < data->channels; i++) 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 183 if (data->channel[i].enabled) 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 184 cfg |= TMP421_CONFIG_REG_REN(i); 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 185 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 186 err = i2c_smbus_write_byte_data(client, TMP421_CONFIG_REG_2, cfg); 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 187 if (err < 0) 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 188 dev_err(dev, "error writing register, can't disable channels\n"); 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 189 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 190 return err; 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 191 } 4a0f8262fe071b0 Krzysztof Adamski 2021-10-12 192 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
