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, &regval);
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]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to