CC: [email protected] CC: [email protected] CC: [email protected] TO: Jakub Jelinek <[email protected]> CC: "Peter Zijlstra (Intel)" <[email protected]> CC: Andrew Morton <[email protected]> CC: Linux Memory Management List <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb commit: 2f78788b55baa3410b1ec91a576286abe1ad4d6a ilog2: improve ilog2 for constant arguments date: 11 months ago :::::: branch date: 22 hours ago :::::: commit date: 11 months ago config: riscv-randconfig-c006-20211025 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project a461fa64bb37cffd73f683c74f6b0780379fc2ca) 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 riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2f78788b55baa3410b1ec91a576286abe1ad4d6a git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 2f78788b55baa3410b1ec91a576286abe1ad4d6a # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv 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 >>) 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 8 warnings generated. drivers/video/fbdev/omap2/omapfb/omapfb-main.c:1554:3: warning: Value stored to 'rg' is never read [clang-analyzer-deadcode.DeadStores] rg = ofbi->region; ^ ~~~~~~~~~~~~ drivers/video/fbdev/omap2/omapfb/omapfb-main.c:1554:3: note: Value stored to 'rg' is never read rg = ofbi->region; ^ ~~~~~~~~~~~~ Suppressed 7 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 7 warnings generated. drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c:514:6: warning: Value stored to 'mode_idx' during its initialization is never read [clang-analyzer-deadcode.DeadStores] int mode_idx = mode->mode_idx; ^~~~~~~~ ~~~~~~~~~~~~~~ drivers/video/fbdev/omap2/omapfb/omapfb-ioctl.c:514:6: note: Value stored to 'mode_idx' during its initialization is never read int mode_idx = mode->mode_idx; ^~~~~~~~ ~~~~~~~~~~~~~~ Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 7 warnings generated. drivers/misc/cardreader/rts5260.c:270:2: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = rtsx_pci_write_register(pcr, LDO_VCC_CFG1, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/misc/cardreader/rts5260.c:270:2: note: Value stored to 'err' is never read err = rtsx_pci_write_register(pcr, LDO_VCC_CFG1, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 6 warnings generated. Suppressed 6 warnings (6 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 5 warnings generated. Suppressed 5 warnings (5 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. 6 warnings generated. >> drivers/watchdog/mlx_wdt.c:125:14: warning: The result of the left shift is >> undefined due to shifting by '32', which is greater or equal to the width of >> type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult] set_time = BIT(hw_timeout) / MLXREG_WDT_CLOCK_SCALE; ^ include/vdso/bits.h:7:26: note: expanded from macro 'BIT' #define BIT(nr) (UL(1) << (nr)) ^ drivers/watchdog/mlx_wdt.c:288:6: note: Assuming 'pdata' is non-null if (!pdata) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/watchdog/mlx_wdt.c:288:2: note: '?' condition is false if (!pdata) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/watchdog/mlx_wdt.c:288:7: note: 'pdata' is non-null if (!pdata) { ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/watchdog/mlx_wdt.c:288:2: note: '?' condition is false if (!pdata) { ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/watchdog/mlx_wdt.c:288:2: note: Taking false branch if (!pdata) { ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ drivers/watchdog/mlx_wdt.c:293:6: note: Assuming 'wdt' is non-null if (!wdt) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ drivers/watchdog/mlx_wdt.c:293:2: note: '?' condition is false if (!wdt) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ drivers/watchdog/mlx_wdt.c:293:7: note: 'wdt' is non-null if (!wdt) ^ include/linux/compiler.h:56:47: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^~~~ include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^~~~ include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value' (cond) ? \ ^~~~ drivers/watchdog/mlx_wdt.c:293:2: note: '?' condition is false if (!wdt) ^ include/linux/compiler.h:56:28: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) ^ include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var' #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond)) ^ include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value' (cond) ? \ ^ drivers/watchdog/mlx_wdt.c:293:2: note: Taking false branch if (!wdt) ^ include/linux/compiler.h:56:23: note: expanded from macro 'if' #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) ) vim +125 drivers/watchdog/mlx_wdt.c c60923dd5feedc Michael Shych 2019-02-20 107 c60923dd5feedc Michael Shych 2019-02-20 108 static int mlxreg_wdt_set_timeout(struct watchdog_device *wdd, c60923dd5feedc Michael Shych 2019-02-20 109 unsigned int timeout) c60923dd5feedc Michael Shych 2019-02-20 110 { c60923dd5feedc Michael Shych 2019-02-20 111 struct mlxreg_wdt *wdt = watchdog_get_drvdata(wdd); c60923dd5feedc Michael Shych 2019-02-20 112 struct mlxreg_core_data *reg_data = &wdt->pdata->data[wdt->timeout_idx]; c60923dd5feedc Michael Shych 2019-02-20 113 u32 regval, set_time, hw_timeout; c60923dd5feedc Michael Shych 2019-02-20 114 int rc; c60923dd5feedc Michael Shych 2019-02-20 115 eee851143bca44 Michael Shych 2020-05-04 116 switch (wdt->wdt_type) { eee851143bca44 Michael Shych 2020-05-04 117 case MLX_WDT_TYPE1: c60923dd5feedc Michael Shych 2019-02-20 118 rc = regmap_read(wdt->regmap, reg_data->reg, ®val); c60923dd5feedc Michael Shych 2019-02-20 119 if (rc) c60923dd5feedc Michael Shych 2019-02-20 120 return rc; c60923dd5feedc Michael Shych 2019-02-20 121 c60923dd5feedc Michael Shych 2019-02-20 122 hw_timeout = order_base_2(timeout * MLXREG_WDT_CLOCK_SCALE); c60923dd5feedc Michael Shych 2019-02-20 123 regval = (regval & reg_data->mask) | hw_timeout; c60923dd5feedc Michael Shych 2019-02-20 124 /* Rowndown to actual closest number of sec. */ c60923dd5feedc Michael Shych 2019-02-20 @125 set_time = BIT(hw_timeout) / MLXREG_WDT_CLOCK_SCALE; eee851143bca44 Michael Shych 2020-05-04 126 rc = regmap_write(wdt->regmap, reg_data->reg, regval); eee851143bca44 Michael Shych 2020-05-04 127 break; eee851143bca44 Michael Shych 2020-05-04 128 case MLX_WDT_TYPE2: c60923dd5feedc Michael Shych 2019-02-20 129 set_time = timeout; eee851143bca44 Michael Shych 2020-05-04 130 rc = regmap_write(wdt->regmap, reg_data->reg, timeout); eee851143bca44 Michael Shych 2020-05-04 131 break; eee851143bca44 Michael Shych 2020-05-04 132 case MLX_WDT_TYPE3: eee851143bca44 Michael Shych 2020-05-04 133 /* WD_TYPE3 has 2B set time register */ eee851143bca44 Michael Shych 2020-05-04 134 set_time = timeout; eee851143bca44 Michael Shych 2020-05-04 135 if (wdt->regmap_val_sz == 1) { eee851143bca44 Michael Shych 2020-05-04 136 regval = timeout & 0xff; eee851143bca44 Michael Shych 2020-05-04 137 rc = regmap_write(wdt->regmap, reg_data->reg, regval); eee851143bca44 Michael Shych 2020-05-04 138 if (!rc) { eee851143bca44 Michael Shych 2020-05-04 139 regval = (timeout & 0xff00) >> 8; eee851143bca44 Michael Shych 2020-05-04 140 rc = regmap_write(wdt->regmap, eee851143bca44 Michael Shych 2020-05-04 141 reg_data->reg + 1, regval); eee851143bca44 Michael Shych 2020-05-04 142 } eee851143bca44 Michael Shych 2020-05-04 143 } else { eee851143bca44 Michael Shych 2020-05-04 144 rc = regmap_write(wdt->regmap, reg_data->reg, timeout); eee851143bca44 Michael Shych 2020-05-04 145 } eee851143bca44 Michael Shych 2020-05-04 146 break; eee851143bca44 Michael Shych 2020-05-04 147 default: eee851143bca44 Michael Shych 2020-05-04 148 return -EINVAL; c60923dd5feedc Michael Shych 2019-02-20 149 } c60923dd5feedc Michael Shych 2019-02-20 150 c60923dd5feedc Michael Shych 2019-02-20 151 wdd->timeout = set_time; c60923dd5feedc Michael Shych 2019-02-20 152 if (!rc) { c60923dd5feedc Michael Shych 2019-02-20 153 /* c60923dd5feedc Michael Shych 2019-02-20 154 * Restart watchdog with new timeout period c60923dd5feedc Michael Shych 2019-02-20 155 * if watchdog is already started. c60923dd5feedc Michael Shych 2019-02-20 156 */ c60923dd5feedc Michael Shych 2019-02-20 157 if (watchdog_active(wdd)) { c60923dd5feedc Michael Shych 2019-02-20 158 rc = mlxreg_wdt_stop(wdd); c60923dd5feedc Michael Shych 2019-02-20 159 if (!rc) c60923dd5feedc Michael Shych 2019-02-20 160 rc = mlxreg_wdt_start(wdd); c60923dd5feedc Michael Shych 2019-02-20 161 } c60923dd5feedc Michael Shych 2019-02-20 162 } c60923dd5feedc Michael Shych 2019-02-20 163 c60923dd5feedc Michael Shych 2019-02-20 164 return rc; c60923dd5feedc Michael Shych 2019-02-20 165 } c60923dd5feedc Michael Shych 2019-02-20 166 :::::: The code at line 125 was first introduced by commit :::::: c60923dd5feedc337b1450e3f4c6e19ffa305439 watchdog: mlx-wdt: introduce a watchdog driver for Mellanox systems. :::::: TO: Michael Shych <[email protected]> :::::: CC: Wim Van Sebroeck <[email protected]> --- 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]
