CC: [email protected]
CC: Junxiao Chang <[email protected]>

tree:   https://github.com/intel/linux-intel-lts.git 5.10/yocto
head:   1941d4b82f36cc6ecc513f3e496ad62726d00514
commit: 6c9a19d3d5af510ad24a4bc5a0e8567938729ce5 [12296/20368] drm: bridge: add 
it66121 driver
:::::: branch date: 6 days ago
:::::: commit date: 6 months ago
config: riscv-randconfig-c006-20220116 
(https://download.01.org/0day-ci/archive/20220117/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
c63a3175c2947e8c1a2d3bbe16a8586600705c54)
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://github.com/intel/linux-intel-lts/commit/6c9a19d3d5af510ad24a4bc5a0e8567938729ce5
        git remote add intel-lts https://github.com/intel/linux-intel-lts.git
        git fetch --no-tags intel-lts 5.10/yocto
        git checkout 6c9a19d3d5af510ad24a4bc5a0e8567938729ce5
        # save the config file 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 >>)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-zydacron.c:53:2: note: Taking false branch
           if ((usage->hid & HID_USAGE_PAGE) != HID_UP_CONSUMER)
           ^
   drivers/hid/hid-zydacron.c:56:2: note: Assuming 'hid_debug' is 0
           dbg_hid("zynacron input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1178:6: note: expanded from macro 'dbg_hid'
           if (hid_debug)                                                  \
               ^~~~~~~~~
   drivers/hid/hid-zydacron.c:56:2: note: Taking false branch
           dbg_hid("zynacron input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1178:2: note: expanded from macro 'dbg_hid'
           if (hid_debug)                                                  \
           ^
   drivers/hid/hid-zydacron.c:56:2: note: Loop condition is false.  Exiting loop
           dbg_hid("zynacron input mapping event [0x%x]\n",
           ^
   include/linux/hid.h:1176:32: note: expanded from macro 'dbg_hid'
   #define dbg_hid(fmt, ...)                                               \
                                                                           ^
   drivers/hid/hid-zydacron.c:59:2: note: Control jumps to 'case 50:'  at line 
96
           switch (usage->hid & HID_USAGE) {
           ^
   drivers/hid/hid-zydacron.c:97:3: note: Calling 'hid_map_usage_clear'
                   zc_map_key_clear(KEY_TEXT);
                   ^
   drivers/hid/hid-zydacron.c:43:2: note: expanded from macro 'zc_map_key_clear'
           hid_map_usage_clear(hi, usage, bit, max, EV_KEY, (c))
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:1021:2: note: Calling 'hid_map_usage'
           hid_map_usage(hidinput, usage, bit, max, type, c);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:975:2: note: 'input' initialized here
           struct input_dev *input = hidinput->input;
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/hid.h:979:2: note: Control jumps to 'case 1:'  at line 988
           switch (type) {
           ^
   include/linux/hid.h:991:3: note:  Execution continues on line 998
                   break;
                   ^
   include/linux/hid.h:998:15: note: 'c' is <= 'limit'
           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:998:15: note: Left side of '||' is false
           if (unlikely(c > limit || !bmap)) {
                        ^
   include/linux/hid.h:998: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:998:28: note: Assuming pointer value 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:998:2: note: Taking true branch
           if (unlikely(c > limit || !bmap)) {
           ^
   include/linux/hid.h:999:3: note: Assuming the condition is true
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/printk.h:511: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:999:3: note: Taking true branch
                   pr_warn_ratelimited("%s: Invalid code %d type %d\n",
                   ^
   include/linux/printk.h:528:2: note: expanded from macro 'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/printk.h:511:2: note: expanded from macro 'printk_ratelimited'
           if (__ratelimit(&_rs))                                          \
           ^
   include/linux/hid.h:1000: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:528:49: note: expanded from macro 
'pr_warn_ratelimited'
           printk_ratelimited(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
                                                          ^~~~~~~~~~~
   include/linux/printk.h:512:17: note: expanded from macro 'printk_ratelimited'
                   printk(fmt, ##__VA_ARGS__);                             \
                                 ^~~~~~~~~~~
   Suppressed 4 warnings (4 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/gpu/drm/bridge/ite-it66121.c:538:2: warning: Value stored to 'ret' 
>> is never read [clang-analyzer-deadcode.DeadStores]
           ret = drm_bridge_attach(bridge->encoder, ctx->next_bridge, bridge, 
flags);
           ^     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/ite-it66121.c:538:2: note: Value stored to 'ret' is 
never read
           ret = drm_bridge_attach(bridge->encoder, ctx->next_bridge, bridge, 
flags);
           ^     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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/gpu/drm/bridge/analogix/analogix-anx6345.c:387:2: warning: Value 
stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
           err = anx6345_clear_bits(anx6345->map[I2C_IDX_TXCOM],
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/analogix/analogix-anx6345.c:387:2: note: Value stored 
to 'err' is never read
           err = anx6345_clear_bits(anx6345->map[I2C_IDX_TXCOM],
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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/gpu/drm/bridge/analogix/anx7625.c:755:4: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
                           ret = sp_tx_rst_aux(ctx);
                           ^     ~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/bridge/analogix/anx7625.c:755:4: note: Value stored to 'ret' 
is never read
                           ret = sp_tx_rst_aux(ctx);
                           ^     ~~~~~~~~~~~~~~~~~~
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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 (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   7 warnings generated.
   drivers/gpu/drm/drm_modes.c:1768:4: warning: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcpy(mode->name, drm_named_modes_whitelist[i]);
                           ^~~~~~
   drivers/gpu/drm/drm_modes.c:1768:4: note: Call to function 'strcpy' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcpy'. CWE-119
                           strcpy(mode->name, drm_named_modes_whitelist[i]);
                           ^~~~~~
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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 +/ret +538 drivers/gpu/drm/bridge/ite-it66121.c

6c9a19d3d5af51 Phong LE 2021-04-19  528  
6c9a19d3d5af51 Phong LE 2021-04-19  529  static int 
it66121_bridge_attach(struct drm_bridge *bridge,
6c9a19d3d5af51 Phong LE 2021-04-19  530                                  enum 
drm_bridge_attach_flags flags)
6c9a19d3d5af51 Phong LE 2021-04-19  531  {
6c9a19d3d5af51 Phong LE 2021-04-19  532         struct it66121_ctx *ctx = 
container_of(bridge, struct it66121_ctx, bridge);
6c9a19d3d5af51 Phong LE 2021-04-19  533         int ret;
6c9a19d3d5af51 Phong LE 2021-04-19  534  
6c9a19d3d5af51 Phong LE 2021-04-19  535         if (!(flags & 
DRM_BRIDGE_ATTACH_NO_CONNECTOR))
6c9a19d3d5af51 Phong LE 2021-04-19  536                 return -EINVAL;
6c9a19d3d5af51 Phong LE 2021-04-19  537  
6c9a19d3d5af51 Phong LE 2021-04-19 @538         ret = 
drm_bridge_attach(bridge->encoder, ctx->next_bridge, bridge, flags);
6c9a19d3d5af51 Phong LE 2021-04-19  539  
6c9a19d3d5af51 Phong LE 2021-04-19  540         ret = 
regmap_write_bits(ctx->regmap, IT66121_CLK_BANK_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  541                                 
IT66121_CLK_BANK_PWROFF_RCLK, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  542         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  543                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  544  
6c9a19d3d5af51 Phong LE 2021-04-19  545         ret = 
regmap_write_bits(ctx->regmap, IT66121_INT_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  546                                 
IT66121_INT_TX_CLK_OFF, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  547         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  548                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  549  
6c9a19d3d5af51 Phong LE 2021-04-19  550         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_DRV_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  551                                 
IT66121_AFE_DRV_PWD, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  552         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  553                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  554  
6c9a19d3d5af51 Phong LE 2021-04-19  555         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_XP_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  556                                 
IT66121_AFE_XP_PWDI | IT66121_AFE_XP_PWDPLL, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  557         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  558                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  559  
6c9a19d3d5af51 Phong LE 2021-04-19  560         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_IP_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  561                                 
IT66121_AFE_IP_PWDPLL, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  562         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  563                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  564  
6c9a19d3d5af51 Phong LE 2021-04-19  565         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_DRV_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  566                                 
IT66121_AFE_DRV_RST, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  567         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  568                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  569  
6c9a19d3d5af51 Phong LE 2021-04-19  570         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_XP_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  571                                 
IT66121_AFE_XP_RESETB, IT66121_AFE_XP_RESETB);
6c9a19d3d5af51 Phong LE 2021-04-19  572         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  573                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  574  
6c9a19d3d5af51 Phong LE 2021-04-19  575         ret = 
regmap_write_bits(ctx->regmap, IT66121_AFE_IP_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  576                                 
IT66121_AFE_IP_RESETB, IT66121_AFE_IP_RESETB);
6c9a19d3d5af51 Phong LE 2021-04-19  577         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  578                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  579  
6c9a19d3d5af51 Phong LE 2021-04-19  580         ret = 
regmap_write_bits(ctx->regmap, IT66121_SW_RST_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  581                                 
IT66121_SW_RST_REF,
6c9a19d3d5af51 Phong LE 2021-04-19  582                                 
IT66121_SW_RST_REF);
6c9a19d3d5af51 Phong LE 2021-04-19  583         if (ret)
6c9a19d3d5af51 Phong LE 2021-04-19  584                 return ret;
6c9a19d3d5af51 Phong LE 2021-04-19  585  
6c9a19d3d5af51 Phong LE 2021-04-19  586         /* Per programming manual, 
sleep here for bridge to settle */
6c9a19d3d5af51 Phong LE 2021-04-19  587         msleep(50);
6c9a19d3d5af51 Phong LE 2021-04-19  588  
6c9a19d3d5af51 Phong LE 2021-04-19  589         /* Start interrupts */
6c9a19d3d5af51 Phong LE 2021-04-19  590         return 
regmap_write_bits(ctx->regmap, IT66121_INT_MASK1_REG,
6c9a19d3d5af51 Phong LE 2021-04-19  591                                  
IT66121_INT_MASK1_DDC_NOACK |
6c9a19d3d5af51 Phong LE 2021-04-19  592                                  
IT66121_INT_MASK1_DDC_FIFOERR |
6c9a19d3d5af51 Phong LE 2021-04-19  593                                  
IT66121_INT_MASK1_DDC_BUSHANG, 0);
6c9a19d3d5af51 Phong LE 2021-04-19  594  }
6c9a19d3d5af51 Phong LE 2021-04-19  595  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to