CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: linux-ker...@vger.kernel.org TO: Joseph CHAMG <josright...@gmail.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 34af78c4e616c359ed428d79fe4758a35d2c5473 commit: 2dc95a4d30eddac9679f295ba4304a7ab0e4ae02 net: Add dm9051 driver date: 6 weeks ago :::::: branch date: 14 hours ago :::::: commit date: 6 weeks ago config: riscv-randconfig-c006-20220321 (https://download.01.org/0day-ci/archive/20220326/202203260014.gxcd6f5x-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 85e9b2687a13d1908aa86d1b89c5ce398a06cd39) 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=2dc95a4d30eddac9679f295ba4304a7ab0e4ae02 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 2dc95a4d30eddac9679f295ba4304a7ab0e4ae02 # 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 <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 9 warnings (9 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. 9 warnings generated. Suppressed 9 warnings (9 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. 9 warnings generated. drivers/video/backlight/adp8860_bl.c:230:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = adp8860_write(client, ADP8860_ISCFR, pdata->led_fade_law); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/video/backlight/adp8860_bl.c:230:2: note: Value stored to 'ret' is never read ret = adp8860_write(client, ADP8860_ISCFR, pdata->led_fade_law); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. 16 warnings generated. Suppressed 16 warnings (16 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 16 warnings generated. Suppressed 16 warnings (16 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. 22 warnings generated. drivers/net/ethernet/jme.c:446:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, "Forced: "); ^~~~~~ drivers/net/ethernet/jme.c:446:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, "Forced: "); ^~~~~~ drivers/net/ethernet/jme.c:464:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, "ANed: "); ^~~~~~ drivers/net/ethernet/jme.c:464:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, "ANed: "); ^~~~~~ drivers/net/ethernet/jme.c:483:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, "10 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:483:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, "10 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:487:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, "100 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:487:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, "100 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:491:4: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, "1000 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:491:4: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, "1000 Mbps, "); ^~~~~~ drivers/net/ethernet/jme.c:534:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, (phylink & PHY_LINK_DUPLEX) ? ^~~~~~ drivers/net/ethernet/jme.c:534:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, (phylink & PHY_LINK_DUPLEX) ? ^~~~~~ drivers/net/ethernet/jme.c:537:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcat(linkmsg, (phylink & PHY_LINK_MDI_STAT) ? ^~~~~~ drivers/net/ethernet/jme.c:537:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119 strcat(linkmsg, (phylink & PHY_LINK_MDI_STAT) ? ^~~~~~ Suppressed 15 warnings (15 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. 20 warnings generated. >> drivers/net/ethernet/davicom/dm9051.c:610:2: warning: Undefined or garbage >> value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:598:9: note: 'ret' declared without an initial value int i, ret; ^~~ drivers/net/ethernet/davicom/dm9051.c:600:6: note: Assuming the condition is false if ((len | offset) & 1) ^~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:600:2: note: Taking false branch if ((len | offset) & 1) ^ drivers/net/ethernet/davicom/dm9051.c:605:14: note: Assuming 'i' is >= 'len' for (i = 0; i < len; i += 2) { ^~~~~~~ drivers/net/ethernet/davicom/dm9051.c:605:2: note: Loop condition is false. Execution continues on line 610 for (i = 0; i < len; i += 2) { ^ drivers/net/ethernet/davicom/dm9051.c:610:2: note: Undefined or garbage value returned to caller return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:632:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:619:9: note: 'ret' declared without an initial value int i, ret; ^~~ drivers/net/ethernet/davicom/dm9051.c:621:6: note: Assuming the condition is false if ((len | offset) & 1) ^~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:621:2: note: Taking false branch if ((len | offset) & 1) ^ drivers/net/ethernet/davicom/dm9051.c:624:6: note: Assuming field 'magic' is equal to DM_EEPROM_MAGIC if (ee->magic != DM_EEPROM_MAGIC) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:624:2: note: Taking false branch if (ee->magic != DM_EEPROM_MAGIC) ^ drivers/net/ethernet/davicom/dm9051.c:627:14: note: Assuming 'i' is >= 'len' for (i = 0; i < len; i += 2) { ^~~~~~~ drivers/net/ethernet/davicom/dm9051.c:627:2: note: Loop condition is false. Execution continues on line 632 for (i = 0; i < len; i += 2) { ^ drivers/net/ethernet/davicom/dm9051.c:632:2: note: Undefined or garbage value returned to caller return ret; ^ ~~~ >> drivers/net/ethernet/davicom/dm9051.c:714:21: warning: Value stored to >> 'ndev' during its initialization is never read >> [clang-analyzer-deadcode.DeadStores] struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:714:21: note: Value stored to 'ndev' during its initialization is never read struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:744:21: warning: Value stored to 'ndev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:744:21: note: Value stored to 'ndev' during its initialization is never read struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ Suppressed 16 warnings (16 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. 15 warnings generated. Suppressed 15 warnings (15 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. Suppressed 8 warnings (8 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. 11 warnings generated. fs/orangefs/inode.c:836:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = posix_acl_chmod(&init_user_ns, inode, inode->i_mode); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/orangefs/inode.c:836:3: note: Value stored to 'ret' is never read ret = posix_acl_chmod(&init_user_ns, inode, inode->i_mode); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 10 warnings (9 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. 8 warnings generated. Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. 10 warnings generated. fs/orangefs/super.c:480:22: warning: Value stored to 'sb' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct super_block *sb = ERR_PTR(-EINVAL); ^~ ~~~~~~~~~~~~~~~~ fs/orangefs/super.c:480:22: note: Value stored to 'sb' during its initialization is never read struct super_block *sb = ERR_PTR(-EINVAL); ^~ ~~~~~~~~~~~~~~~~ fs/orangefs/super.c:573:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = service_operation(new_op, "orangefs_features", 0); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/orangefs/super.c:573:3: note: Value stored to 'ret' is never read ret = service_operation(new_op, "orangefs_features", 0); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. Suppressed 7 warnings (7 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. 10 warnings generated. Suppressed 10 warnings (10 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. 13 warnings generated. drivers/gpu/drm/sprd/sprd_dsi.c:338:10: warning: Although the value stored to 'video_size_step' is used in the enclosing expression, the value is never actually read from 'video_size_step' [clang-analyzer-deadcode.DeadStores] return video_size_step = 1; ^ ~ drivers/gpu/drm/sprd/sprd_dsi.c:338:10: note: Although the value stored to 'video_size_step' is used in the enclosing expression, the value is never actually read from 'video_size_step' return video_size_step = 1; ^ ~ drivers/gpu/drm/sprd/sprd_dsi.c:345:10: warning: Although the value stored to 'video_size_step' is used in the enclosing expression, the value is never actually read from 'video_size_step' [clang-analyzer-deadcode.DeadStores] return video_size_step = 2; ^ ~ drivers/gpu/drm/sprd/sprd_dsi.c:345:10: note: Although the value stored to 'video_size_step' is used in the enclosing expression, the value is never actually read from 'video_size_step' return video_size_step = 2; ^ ~ drivers/gpu/drm/sprd/sprd_dsi.c:641:15: warning: Although the value stored to 'j' is used in the enclosing expression, the value is never actually read from 'j' [clang-analyzer-deadcode.DeadStores] for (i = 0, j = 0; i < len; i += j) { ^ ~ drivers/gpu/drm/sprd/sprd_dsi.c:641:15: note: Although the value stored to 'j' is used in the enclosing expression, the value is never actually read from 'j' for (i = 0, j = 0; i < len; i += j) { ^ ~ Suppressed 10 warnings (10 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. 10 warnings generated. Suppressed 10 warnings (10 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. 12 warnings generated. drivers/gpu/drm/msm/dp/dp_aux.c:150:2: warning: Value stored to 'data' is never read [clang-analyzer-deadcode.DeadStores] data = dp_catalog_aux_read_data(aux->catalog); -- ^~~~~~~~~~~ include/asm-generic/bitops/fls64.h:29:6: note: Assuming 'x' is not equal to 0 if (x == 0) ^~~~~~ include/asm-generic/bitops/fls64.h:29:2: note: Taking false branch if (x == 0) ^ include/asm-generic/bitops/fls64.h:31:2: note: Returning the value 64 return __fls(x) + 1; ^~~~~~~~~~~~~~~~~~~ include/asm-generic/getorder.h:46:9: note: Returning from 'fls64' return fls64(size); ^~~~~~~~~~~ include/asm-generic/getorder.h:46:2: note: Returning the value 64 return fls64(size); ^~~~~~~~~~~~~~~~~~ net/packet/af_packet.c:4406:11: note: Returning from 'get_order' order = get_order(req->tp_block_size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/packet/af_packet.c:4406:3: note: The value 64 is assigned to 'order' order = get_order(req->tp_block_size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/packet/af_packet.c:4407:30: note: Passing the value 64 via 2nd parameter 'order' pg_vec = alloc_pg_vec(req, order); ^~~~~ net/packet/af_packet.c:4407:12: note: Calling 'alloc_pg_vec' pg_vec = alloc_pg_vec(req, order); ^~~~~~~~~~~~~~~~~~~~~~~~ net/packet/af_packet.c:4318:15: note: Assuming 'pg_vec' is non-null if (unlikely(!pg_vec)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ net/packet/af_packet.c:4318:2: note: Taking false branch if (unlikely(!pg_vec)) ^ net/packet/af_packet.c:4321:14: note: 'i' is < 'block_nr' for (i = 0; i < block_nr; i++) { ^ net/packet/af_packet.c:4321:2: note: Loop condition is true. Entering loop body for (i = 0; i < block_nr; i++) { ^ net/packet/af_packet.c:4322:44: note: Passing the value 64 via 1st parameter 'order' pg_vec[i].buffer = alloc_one_pg_vec_page(order); ^~~~~ net/packet/af_packet.c:4322:22: note: Calling 'alloc_one_pg_vec_page' pg_vec[i].buffer = alloc_one_pg_vec_page(order); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/packet/af_packet.c:4293:6: note: Assuming 'buffer' is null if (buffer) ^~~~~~ net/packet/af_packet.c:4293:2: note: Taking false branch if (buffer) ^ net/packet/af_packet.c:4297:33: note: The result of the left shift is undefined due to shifting by '64', which is greater or equal to the width of type 'int' buffer = vzalloc(array_size((1 << order), PAGE_SIZE)); ^ ~~~~~ Suppressed 15 warnings (15 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. 10 warnings generated. Suppressed 10 warnings (10 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 9 warnings generated. Suppressed 9 warnings (9 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. Suppressed 8 warnings (8 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. 15 warnings generated. Suppressed 15 warnings (15 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. 9 warnings generated. Suppressed 9 warnings (9 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. 20 warnings generated. >> drivers/net/ethernet/davicom/dm9051.c:610:2: warning: Undefined or garbage >> value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:598:9: note: 'ret' declared without an initial value int i, ret; ^~~ drivers/net/ethernet/davicom/dm9051.c:600:6: note: Assuming the condition is false if ((len | offset) & 1) ^~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:600:2: note: Taking false branch if ((len | offset) & 1) ^ drivers/net/ethernet/davicom/dm9051.c:605:14: note: Assuming 'i' is >= 'len' for (i = 0; i < len; i += 2) { ^~~~~~~ drivers/net/ethernet/davicom/dm9051.c:605:2: note: Loop condition is false. Execution continues on line 610 for (i = 0; i < len; i += 2) { ^ drivers/net/ethernet/davicom/dm9051.c:610:2: note: Undefined or garbage value returned to caller return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:632:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn] return ret; ^ ~~~ drivers/net/ethernet/davicom/dm9051.c:619:9: note: 'ret' declared without an initial value int i, ret; ^~~ drivers/net/ethernet/davicom/dm9051.c:621:6: note: Assuming the condition is false if ((len | offset) & 1) ^~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:621:2: note: Taking false branch if ((len | offset) & 1) ^ drivers/net/ethernet/davicom/dm9051.c:624:6: note: Assuming field 'magic' is equal to DM_EEPROM_MAGIC if (ee->magic != DM_EEPROM_MAGIC) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:624:2: note: Taking false branch if (ee->magic != DM_EEPROM_MAGIC) ^ drivers/net/ethernet/davicom/dm9051.c:627:14: note: Assuming 'i' is >= 'len' for (i = 0; i < len; i += 2) { ^~~~~~~ drivers/net/ethernet/davicom/dm9051.c:627:2: note: Loop condition is false. Execution continues on line 632 for (i = 0; i < len; i += 2) { ^ drivers/net/ethernet/davicom/dm9051.c:632:2: note: Undefined or garbage value returned to caller return ret; ^ ~~~ >> drivers/net/ethernet/davicom/dm9051.c:714:21: warning: Value stored to >> 'ndev' during its initialization is never read >> [clang-analyzer-deadcode.DeadStores] struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:714:21: note: Value stored to 'ndev' during its initialization is never read struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:744:21: warning: Value stored to 'ndev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ drivers/net/ethernet/davicom/dm9051.c:744:21: note: Value stored to 'ndev' during its initialization is never read struct net_device *ndev = db->ndev; ^~~~ ~~~~~~~~ Suppressed 16 warnings (16 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. 15 warnings generated. Suppressed 15 warnings (15 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. 12 warnings generated. fs/ntfs/file.c:194:3: warning: Value stored to 'm' is never read [clang-analyzer-deadcode.DeadStores] m = ctx->mrec; ^ ~~~~~~~~~ fs/ntfs/file.c:194:3: note: Value stored to 'm' is never read m = ctx->mrec; ^ ~~~~~~~~~ fs/ntfs/file.c:1779:15: warning: Although the value stored to 'idx' is used in the enclosing expression, the value is never actually read from 'idx' [clang-analyzer-deadcode.DeadStores] start_idx = idx = pos >> PAGE_SHIFT; ^ ~~~~~~~~~~~~~~~~~ fs/ntfs/file.c:1779:15: note: Although the value stored to 'idx' is used in the enclosing expression, the value is never actually read from 'idx' start_idx = idx = pos >> PAGE_SHIFT; ^ ~~~~~~~~~~~~~~~~~ Suppressed 10 warnings (10 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. 9 warnings generated. Suppressed 9 warnings (9 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. 10 warnings generated. fs/ntfs/inode.c:1840:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] err = -ENOMEM; ^ ~~~~~~~ fs/ntfs/inode.c:1840:3: note: Value stored to 'err' is never read err = -ENOMEM; ^ ~~~~~~~ Suppressed 9 warnings (9 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. 15 warnings generated. Suppressed 15 warnings (15 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. Suppressed 8 warnings (8 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. Suppressed 8 warnings (8 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. 10 warnings generated. Suppressed 10 warnings (10 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. 10 warnings generated. Suppressed 10 warnings (10 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. 11 warnings generated. drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c:355:27: warning: Value stored to 'mdp5_state' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct mdp5_plane_state *mdp5_state = to_mdp5_plane_state(new_plane_state); ^~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_plane.c:355:27: note: Value stored to 'mdp5_state' during its initialization is never read struct mdp5_plane_state *mdp5_state = to_mdp5_plane_state(new_plane_state); ^~~~~~~~~~ Suppressed 10 warnings (10 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. 57 warnings generated. drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:158:16: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult] blkcfg |= (n << (8 * i)); ~ ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:136:7: note: Assuming 'rev' is <= 0 if ((rev > 0) && (format->chroma_sample > CHROMA_FULL)) { ^~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:136:16: note: Left side of '&&' is false if ((rev > 0) && (format->chroma_sample > CHROMA_FULL)) { ^ drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:146:14: note: Assuming 'i' is < 'nplanes' for (i = 0; i < nplanes; i++) { ^~~~~~~~~~~ drivers/gpu/drm/msm/disp/mdp5/mdp5_smp.c:146:2: note: Loop condition is true. Entering loop body for (i = 0; i < nplanes; i++) { vim +610 drivers/net/ethernet/davicom/dm9051.c 2dc95a4d30edda Joseph CHAMG 2022-02-11 591 2dc95a4d30edda Joseph CHAMG 2022-02-11 592 static int dm9051_get_eeprom(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 593 struct ethtool_eeprom *ee, u8 *data) 2dc95a4d30edda Joseph CHAMG 2022-02-11 594 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 595 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 596 int offset = ee->offset; 2dc95a4d30edda Joseph CHAMG 2022-02-11 597 int len = ee->len; 2dc95a4d30edda Joseph CHAMG 2022-02-11 598 int i, ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 599 2dc95a4d30edda Joseph CHAMG 2022-02-11 600 if ((len | offset) & 1) 2dc95a4d30edda Joseph CHAMG 2022-02-11 601 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 602 2dc95a4d30edda Joseph CHAMG 2022-02-11 603 ee->magic = DM_EEPROM_MAGIC; 2dc95a4d30edda Joseph CHAMG 2022-02-11 604 2dc95a4d30edda Joseph CHAMG 2022-02-11 605 for (i = 0; i < len; i += 2) { 2dc95a4d30edda Joseph CHAMG 2022-02-11 606 ret = dm9051_eeprom_read(db, (offset + i) / 2, data + i); 2dc95a4d30edda Joseph CHAMG 2022-02-11 607 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 608 break; 2dc95a4d30edda Joseph CHAMG 2022-02-11 609 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 @610 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 611 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 612 2dc95a4d30edda Joseph CHAMG 2022-02-11 613 static int dm9051_set_eeprom(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 614 struct ethtool_eeprom *ee, u8 *data) 2dc95a4d30edda Joseph CHAMG 2022-02-11 615 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 616 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 617 int offset = ee->offset; 2dc95a4d30edda Joseph CHAMG 2022-02-11 618 int len = ee->len; 2dc95a4d30edda Joseph CHAMG 2022-02-11 619 int i, ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 620 2dc95a4d30edda Joseph CHAMG 2022-02-11 621 if ((len | offset) & 1) 2dc95a4d30edda Joseph CHAMG 2022-02-11 622 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 623 2dc95a4d30edda Joseph CHAMG 2022-02-11 624 if (ee->magic != DM_EEPROM_MAGIC) 2dc95a4d30edda Joseph CHAMG 2022-02-11 625 return -EINVAL; 2dc95a4d30edda Joseph CHAMG 2022-02-11 626 2dc95a4d30edda Joseph CHAMG 2022-02-11 627 for (i = 0; i < len; i += 2) { 2dc95a4d30edda Joseph CHAMG 2022-02-11 628 ret = dm9051_eeprom_write(db, (offset + i) / 2, data + i); 2dc95a4d30edda Joseph CHAMG 2022-02-11 629 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 630 break; 2dc95a4d30edda Joseph CHAMG 2022-02-11 631 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 632 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 633 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 634 2dc95a4d30edda Joseph CHAMG 2022-02-11 635 static void dm9051_get_pauseparam(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 636 struct ethtool_pauseparam *pause) 2dc95a4d30edda Joseph CHAMG 2022-02-11 637 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 638 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 639 2dc95a4d30edda Joseph CHAMG 2022-02-11 640 *pause = db->pause; 2dc95a4d30edda Joseph CHAMG 2022-02-11 641 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 642 2dc95a4d30edda Joseph CHAMG 2022-02-11 643 static int dm9051_set_pauseparam(struct net_device *ndev, 2dc95a4d30edda Joseph CHAMG 2022-02-11 644 struct ethtool_pauseparam *pause) 2dc95a4d30edda Joseph CHAMG 2022-02-11 645 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 646 struct board_info *db = to_dm9051_board(ndev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 647 2dc95a4d30edda Joseph CHAMG 2022-02-11 648 db->pause = *pause; 2dc95a4d30edda Joseph CHAMG 2022-02-11 649 2dc95a4d30edda Joseph CHAMG 2022-02-11 650 if (pause->autoneg == AUTONEG_DISABLE) 2dc95a4d30edda Joseph CHAMG 2022-02-11 651 return dm9051_update_fcr(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 652 2dc95a4d30edda Joseph CHAMG 2022-02-11 653 phy_set_sym_pause(db->phydev, pause->rx_pause, pause->tx_pause, 2dc95a4d30edda Joseph CHAMG 2022-02-11 654 pause->autoneg); 2dc95a4d30edda Joseph CHAMG 2022-02-11 655 phy_start_aneg(db->phydev); 2dc95a4d30edda Joseph CHAMG 2022-02-11 656 return 0; 2dc95a4d30edda Joseph CHAMG 2022-02-11 657 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 658 2dc95a4d30edda Joseph CHAMG 2022-02-11 659 static const struct ethtool_ops dm9051_ethtool_ops = { 2dc95a4d30edda Joseph CHAMG 2022-02-11 660 .get_drvinfo = dm9051_get_drvinfo, 2dc95a4d30edda Joseph CHAMG 2022-02-11 661 .get_link_ksettings = phy_ethtool_get_link_ksettings, 2dc95a4d30edda Joseph CHAMG 2022-02-11 662 .set_link_ksettings = phy_ethtool_set_link_ksettings, 2dc95a4d30edda Joseph CHAMG 2022-02-11 663 .get_msglevel = dm9051_get_msglevel, 2dc95a4d30edda Joseph CHAMG 2022-02-11 664 .set_msglevel = dm9051_set_msglevel, 2dc95a4d30edda Joseph CHAMG 2022-02-11 665 .nway_reset = phy_ethtool_nway_reset, 2dc95a4d30edda Joseph CHAMG 2022-02-11 666 .get_link = ethtool_op_get_link, 2dc95a4d30edda Joseph CHAMG 2022-02-11 667 .get_eeprom_len = dm9051_get_eeprom_len, 2dc95a4d30edda Joseph CHAMG 2022-02-11 668 .get_eeprom = dm9051_get_eeprom, 2dc95a4d30edda Joseph CHAMG 2022-02-11 669 .set_eeprom = dm9051_set_eeprom, 2dc95a4d30edda Joseph CHAMG 2022-02-11 670 .get_pauseparam = dm9051_get_pauseparam, 2dc95a4d30edda Joseph CHAMG 2022-02-11 671 .set_pauseparam = dm9051_set_pauseparam, 2dc95a4d30edda Joseph CHAMG 2022-02-11 672 }; 2dc95a4d30edda Joseph CHAMG 2022-02-11 673 2dc95a4d30edda Joseph CHAMG 2022-02-11 674 static int dm9051_all_start(struct board_info *db) 2dc95a4d30edda Joseph CHAMG 2022-02-11 675 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 676 int ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 677 2dc95a4d30edda Joseph CHAMG 2022-02-11 678 /* GPR power on of the internal phy 2dc95a4d30edda Joseph CHAMG 2022-02-11 679 */ 2dc95a4d30edda Joseph CHAMG 2022-02-11 680 ret = dm9051_set_reg(db, DM9051_GPR, 0); 2dc95a4d30edda Joseph CHAMG 2022-02-11 681 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 682 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 683 2dc95a4d30edda Joseph CHAMG 2022-02-11 684 /* dm9051 chip registers could not be accessed within 1 ms 2dc95a4d30edda Joseph CHAMG 2022-02-11 685 * after GPR power on, delay 1 ms is essential 2dc95a4d30edda Joseph CHAMG 2022-02-11 686 */ 2dc95a4d30edda Joseph CHAMG 2022-02-11 687 msleep(1); 2dc95a4d30edda Joseph CHAMG 2022-02-11 688 2dc95a4d30edda Joseph CHAMG 2022-02-11 689 ret = dm9051_core_reset(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 690 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 691 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 692 2dc95a4d30edda Joseph CHAMG 2022-02-11 693 return dm9051_enable_interrupt(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 694 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 695 2dc95a4d30edda Joseph CHAMG 2022-02-11 696 static int dm9051_all_stop(struct board_info *db) 2dc95a4d30edda Joseph CHAMG 2022-02-11 697 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 698 int ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 699 2dc95a4d30edda Joseph CHAMG 2022-02-11 700 /* GPR power off of the internal phy, 2dc95a4d30edda Joseph CHAMG 2022-02-11 701 * The internal phy still could be accessed after this GPR power off control 2dc95a4d30edda Joseph CHAMG 2022-02-11 702 */ 2dc95a4d30edda Joseph CHAMG 2022-02-11 703 ret = dm9051_set_reg(db, DM9051_GPR, GPR_PHY_OFF); 2dc95a4d30edda Joseph CHAMG 2022-02-11 704 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 705 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 706 2dc95a4d30edda Joseph CHAMG 2022-02-11 707 return dm9051_set_reg(db, DM9051_RCR, RCR_RX_DISABLE); 2dc95a4d30edda Joseph CHAMG 2022-02-11 708 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 709 2dc95a4d30edda Joseph CHAMG 2022-02-11 710 /* fifo reset while rx error found 2dc95a4d30edda Joseph CHAMG 2022-02-11 711 */ 2dc95a4d30edda Joseph CHAMG 2022-02-11 712 static int dm9051_all_restart(struct board_info *db) 2dc95a4d30edda Joseph CHAMG 2022-02-11 713 { 2dc95a4d30edda Joseph CHAMG 2022-02-11 @714 struct net_device *ndev = db->ndev; 2dc95a4d30edda Joseph CHAMG 2022-02-11 715 int ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 716 2dc95a4d30edda Joseph CHAMG 2022-02-11 717 ret = dm9051_core_reset(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 718 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 719 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 720 2dc95a4d30edda Joseph CHAMG 2022-02-11 721 ret = dm9051_enable_interrupt(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 722 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 723 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 724 2dc95a4d30edda Joseph CHAMG 2022-02-11 725 netdev_dbg(ndev, " rxstatus_Er & rxlen_Er %d, RST_c %d\n", 2dc95a4d30edda Joseph CHAMG 2022-02-11 726 db->bc.status_err_counter + db->bc.large_err_counter, 2dc95a4d30edda Joseph CHAMG 2022-02-11 727 db->bc.fifo_rst_counter); 2dc95a4d30edda Joseph CHAMG 2022-02-11 728 2dc95a4d30edda Joseph CHAMG 2022-02-11 729 ret = dm9051_set_recv(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 730 if (ret) 2dc95a4d30edda Joseph CHAMG 2022-02-11 731 return ret; 2dc95a4d30edda Joseph CHAMG 2022-02-11 732 2dc95a4d30edda Joseph CHAMG 2022-02-11 733 return dm9051_set_fcr(db); 2dc95a4d30edda Joseph CHAMG 2022-02-11 734 } 2dc95a4d30edda Joseph CHAMG 2022-02-11 735 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org