CC: [email protected] CC: [email protected] BCC: [email protected] CC: [email protected] TO: Arkadiusz Kubalewski <[email protected]> CC: Tony Nguyen <[email protected]> CC: Aleksandr Loktionov <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 7f50d4dfe816dd916a7cbf39039674825c2b388b commit: 65662a8dcdd01342b71ee44234bcfd0162e195af i40e: Fix logic of disabling queues date: 10 months ago :::::: branch date: 4 hours ago :::::: commit date: 10 months ago config: arm-randconfig-c002-20220522 (https://download.01.org/0day-ci/archive/20220527/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1443dbaba6f0e57be066995db9164f89fb57b413) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=65662a8dcdd01342b71ee44234bcfd0162e195af git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 65662a8dcdd01342b71ee44234bcfd0162e195af # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^~~~~~~~~~~~~~~ drivers/net/ethernet/cisco/enic/vnic_dev.c:1215:2: note: Taking false branch if (cmd == CLSF_ADD) { ^ drivers/net/ethernet/cisco/enic/vnic_dev.c:1244:13: note: Assuming 'cmd' is equal to CLSF_DEL } else if (cmd == CLSF_DEL) { ^~~~~~~~~~~~~~~ drivers/net/ethernet/cisco/enic/vnic_dev.c:1244:9: note: Taking true branch } else if (cmd == CLSF_DEL) { ^ drivers/net/ethernet/cisco/enic/vnic_dev.c:1246:9: note: Calling 'vnic_dev_cmd' ret = vnic_dev_cmd(vdev, CMD_DEL_FILTER, &a0, &a1, wait); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cisco/enic/vnic_dev.c:522:2: note: Control jumps to 'case PROXY_NONE:' at line 529 switch (vdev->proxy) { ^ drivers/net/ethernet/cisco/enic/vnic_dev.c:531:10: note: Calling 'vnic_dev_cmd_no_proxy' return vnic_dev_cmd_no_proxy(vdev, cmd, a0, a1, wait); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/cisco/enic/vnic_dev.c:495:16: note: Assigned value is garbage or undefined vdev->args[1] = *a1; ^ ~~~ 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. 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. 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. 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. 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. 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. 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. 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. 18 warnings generated. >> drivers/net/ethernet/intel/i40e/i40e_main.c:4643:2: warning: Value stored to >> 'pf_q' is never read [clang-analyzer-deadcode.DeadStores] pf_q = vsi->base_queue; ^ ~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:4643:2: note: Value stored to 'pf_q' is never read pf_q = vsi->base_queue; ^ ~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:7949:3: warning: Value stored to 'need_reset' is never read [clang-analyzer-deadcode.DeadStores] need_reset = false; ^ ~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:7949:3: note: Value stored to 'need_reset' is never read need_reset = false; ^ ~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:9179:6: warning: Value stored to 'queue' during its initialization is never read [clang-analyzer-deadcode.DeadStores] u32 queue = le32_to_cpu(data->prtdcb_rupto); ^~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:9179:6: note: Value stored to 'queue' during its initialization is never read u32 queue = le32_to_cpu(data->prtdcb_rupto); ^~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:9828:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = i40e_vc_process_vf_msg(pf, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:9828:4: note: Value stored to 'ret' is never read ret = i40e_vc_process_vf_msg(pf, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:10707:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = i40e_setup_misc_vector(pf); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:10707:3: note: Value stored to 'ret' is never read ret = i40e_setup_misc_vector(pf); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:14131:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = i40e_vsi_config_rss(vsi); ^ ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/intel/i40e/i40e_main.c:14131:3: note: Value stored to 'ret' is never read ret = i40e_vsi_config_rss(vsi); ^ ~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 12 warnings (11 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. drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:49:39: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] const struct nvkm_vmm_desc *pair = page[-1].desc; ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1145:8: note: Assuming is non-null if (!(*pvmm = kzalloc(sizeof(**pvmm), GFP_KERNEL))) ^~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1145:2: note: Taking false branch if (!(*pvmm = kzalloc(sizeof(**pvmm), GFP_KERNEL))) ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1147:9: note: Calling 'nvkm_vmm_ctor' return nvkm_vmm_ctor(func, mmu, hdr, managed, addr, size, key, name, *pvmm); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1051:43: note: Assuming 'key' is null __mutex_init(&vmm->mutex, "&vmm->mutex", key ? key : &_key); ^~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1051:43: note: '?' condition is false drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1056:2: note: Loop condition is false. Execution continues on line 1063 while (page[1].shift) ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1063:2: note: Loop condition is false. Execution continues on line 1065 for (levels = 0, desc = page->desc; desc->bits; desc++, levels++) ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1068:6: note: Taking false branch if (WARN_ON(levels > NVKM_VMM_LEVELS_MAX)) ^ include/asm-generic/bug.h:122:2: note: expanded from macro 'WARN_ON' if (unlikely(__ret_warn_on)) \ ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1068:2: note: Taking false branch if (WARN_ON(levels > NVKM_VMM_LEVELS_MAX)) ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1072:41: note: Passing null pointer value via 3rd parameter 'page' vmm->pd = nvkm_vmm_pt_new(desc, false, NULL); ^ include/linux/stddef.h:8:14: note: expanded from macro 'NULL' #define NULL ((void *)0) ^~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1072:12: note: Calling 'nvkm_vmm_pt_new' vmm->pd = nvkm_vmm_pt_new(desc, false, NULL); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:47:6: note: Assuming field 'type' is > PGT if (desc->type > PGT) { ^~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:47:2: note: Taking true branch if (desc->type > PGT) { ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:48:7: note: Assuming field 'type' is equal to SPT if (desc->type == SPT) { ^~~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:48:3: note: Taking true branch if (desc->type == SPT) { ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:49:39: note: Dereference of null pointer const struct nvkm_vmm_desc *pair = page[-1].desc; ^~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:535:3: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] const u32 ptei = it.pte[0]; ^ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1869:6: note: Assuming 'ret' is not equal to 0 if (ret) ^~~ drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c:1869:2: note: Taking true branch vim +/pf_q +4643 drivers/net/ethernet/intel/i40e/i40e_main.c 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4616 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4617 /** 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4618 * i40e_vsi_stop_rings - Stop a VSI's rings 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4619 * @vsi: the VSI being configured 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4620 **/ 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4621 void i40e_vsi_stop_rings(struct i40e_vsi *vsi) 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4622 { 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4623 struct i40e_pf *pf = vsi->back; 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4624 int pf_q, err, q_end; 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4625 3480756f2cb93c Jacob Keller 2017-04-13 4626 /* When port TX is suspended, don't wait */ 0da36b9774cc24 Jacob Keller 2017-04-19 4627 if (test_bit(__I40E_PORT_SUSPENDED, vsi->back->state)) 3480756f2cb93c Jacob Keller 2017-04-13 4628 return i40e_vsi_stop_rings_no_wait(vsi); 3480756f2cb93c Jacob Keller 2017-04-13 4629 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4630 q_end = vsi->base_queue + vsi->num_queue_pairs; 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4631 for (pf_q = vsi->base_queue; pf_q < q_end; pf_q++) 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4632 i40e_pre_tx_queue_cfg(&pf->hw, (u32)pf_q, false); 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4633 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4634 for (pf_q = vsi->base_queue; pf_q < q_end; pf_q++) { 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4635 err = i40e_control_wait_rx_q(pf, pf_q, false); 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4636 if (err) 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4637 dev_info(&pf->pdev->dev, 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4638 "VSI seid %d Rx ring %d dissable timeout\n", 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4639 vsi->seid, pf_q); 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4640 } 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4641 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4642 msleep(I40E_DISABLE_TX_GAP_MSEC); 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 @4643 pf_q = vsi->base_queue; 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4644 for (pf_q = vsi->base_queue; pf_q < q_end; pf_q++) 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4645 wr32(&pf->hw, I40E_QTX_ENA(pf_q), 0); 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4646 65662a8dcdd013 Arkadiusz Kubalewski 2021-04-29 4647 i40e_vsi_wait_queues_disabled(vsi); 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4648 } 3aa7b74dbeedfb Filip Sadowski 2016-10-11 4649 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
