[<prev] [next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.22.394.2410061645380.12182@hadrien>
Date: Sun, 6 Oct 2024 16:48:07 +0200 (CEST)
From: Julia Lawall <julia.lawall@...ia.fr>
To: Jinjie Ruan <ruanjinjie@...wei.com>, Paolo Abeni <pabeni@...hat.com>,
Jacob Keller <jacob.e.keller@...el.com>,
Tony Nguyen <anthony.l.nguyen@...el.com>, Simon Horman <horms@...nel.org>
cc: linux-kernel@...r.kernel.org, oe-kbuild-all@...ts.linux.dev
Subject: drivers/net/ethernet/intel/igb/igb_main.c:7895:6-11: ERROR: invalid
reference to the index variable of the iterator on line 7890 (fwd)
Please check the test on line 7895. entry will never be NULL. If the
loop reaches the end of the list, it will point to some offset from a
list_head node and entry->free will at best be some random value.
julia
---------- Forwarded message ----------
Date: Sun, 6 Oct 2024 22:28:12 +0800
From: kernel test robot <lkp@...el.com>
To: oe-kbuild@...ts.linux.dev
Cc: lkp@...el.com, Julia Lawall <julia.lawall@...ia.fr>
Subject: drivers/net/ethernet/intel/igb/igb_main.c:7895:6-11: ERROR: invalid
reference to the index variable of the iterator on line 7890
BCC: lkp@...el.com
CC: oe-kbuild-all@...ts.linux.dev
CC: linux-kernel@...r.kernel.org
TO: Jinjie Ruan <ruanjinjie@...wei.com>
CC: Paolo Abeni <pabeni@...hat.com>
CC: Jacob Keller <jacob.e.keller@...el.com>
CC: Tony Nguyen <anthony.l.nguyen@...el.com>
CC: Simon Horman <horms@...nel.org>
Hi Jinjie,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8f602276d3902642fdc3429b548d73c745446601
commit: c1fec890458ad101ddbbc52cdd29f7bba6aa2b10 ethernet/intel: Use list_for_each_entry() helper
date: 1 year ago
:::::: branch date: 16 hours ago
:::::: commit date: 1 year ago
config: x86_64-randconfig-r062-20241006 (https://download.01.org/0day-ci/archive/20241006/202410062237.zvQc58MX-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Reported-by: Julia Lawall <julia.lawall@...ia.fr>
| Closes: https://lore.kernel.org/r/202410062237.zvQc58MX-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/net/ethernet/intel/igb/igb_main.c:7895:6-11: ERROR: invalid reference to the index variable of the iterator on line 7890
drivers/net/ethernet/intel/igb/igb_main.c:7895:15-20: ERROR: invalid reference to the index variable of the iterator on line 7890
vim +7895 drivers/net/ethernet/intel/igb/igb_main.c
83c21335c87622 Yury Kylulin 2017-03-07 7854
b476deab8f412b Colin Ian King 2017-04-27 7855 static int igb_set_vf_mac_filter(struct igb_adapter *adapter, const int vf,
4827cc37796a02 Yury Kylulin 2017-03-07 7856 const u32 info, const u8 *addr)
4827cc37796a02 Yury Kylulin 2017-03-07 7857 {
4827cc37796a02 Yury Kylulin 2017-03-07 7858 struct pci_dev *pdev = adapter->pdev;
4827cc37796a02 Yury Kylulin 2017-03-07 7859 struct vf_data_storage *vf_data = &adapter->vf_data[vf];
4827cc37796a02 Yury Kylulin 2017-03-07 7860 struct vf_mac_filter *entry = NULL;
4827cc37796a02 Yury Kylulin 2017-03-07 7861 int ret = 0;
4827cc37796a02 Yury Kylulin 2017-03-07 7862
1b8b062a99dc76 Corinna Vinschen 2018-01-17 7863 if ((vf_data->flags & IGB_VF_FLAG_PF_SET_MAC) &&
1b8b062a99dc76 Corinna Vinschen 2018-01-17 7864 !vf_data->trusted) {
4827cc37796a02 Yury Kylulin 2017-03-07 7865 dev_warn(&pdev->dev,
4827cc37796a02 Yury Kylulin 2017-03-07 7866 "VF %d requested MAC filter but is administratively denied\n",
4827cc37796a02 Yury Kylulin 2017-03-07 7867 vf);
4827cc37796a02 Yury Kylulin 2017-03-07 7868 return -EINVAL;
4827cc37796a02 Yury Kylulin 2017-03-07 7869 }
4827cc37796a02 Yury Kylulin 2017-03-07 7870 if (!is_valid_ether_addr(addr)) {
4827cc37796a02 Yury Kylulin 2017-03-07 7871 dev_warn(&pdev->dev,
4827cc37796a02 Yury Kylulin 2017-03-07 7872 "VF %d attempted to set invalid MAC filter\n",
4827cc37796a02 Yury Kylulin 2017-03-07 7873 vf);
4827cc37796a02 Yury Kylulin 2017-03-07 7874 return -EINVAL;
4827cc37796a02 Yury Kylulin 2017-03-07 7875 }
4827cc37796a02 Yury Kylulin 2017-03-07 7876
584af82154f56e Karen Sornek 2021-08-31 7877 switch (info) {
584af82154f56e Karen Sornek 2021-08-31 7878 case E1000_VF_MAC_FILTER_CLR:
584af82154f56e Karen Sornek 2021-08-31 7879 /* remove all unicast MAC filters related to the current VF */
c1fec890458ad1 Jinjie Ruan 2023-09-19 7880 list_for_each_entry(entry, &adapter->vf_macs.l, l) {
584af82154f56e Karen Sornek 2021-08-31 7881 if (entry->vf == vf) {
584af82154f56e Karen Sornek 2021-08-31 7882 entry->vf = -1;
584af82154f56e Karen Sornek 2021-08-31 7883 entry->free = true;
584af82154f56e Karen Sornek 2021-08-31 7884 igb_del_mac_filter(adapter, entry->vf_mac, vf);
584af82154f56e Karen Sornek 2021-08-31 7885 }
584af82154f56e Karen Sornek 2021-08-31 7886 }
584af82154f56e Karen Sornek 2021-08-31 7887 break;
584af82154f56e Karen Sornek 2021-08-31 7888 case E1000_VF_MAC_FILTER_ADD:
4827cc37796a02 Yury Kylulin 2017-03-07 7889 /* try to find empty slot in the list */
c1fec890458ad1 Jinjie Ruan 2023-09-19 @7890 list_for_each_entry(entry, &adapter->vf_macs.l, l) {
4827cc37796a02 Yury Kylulin 2017-03-07 7891 if (entry->free)
4827cc37796a02 Yury Kylulin 2017-03-07 7892 break;
4827cc37796a02 Yury Kylulin 2017-03-07 7893 }
4827cc37796a02 Yury Kylulin 2017-03-07 7894
4827cc37796a02 Yury Kylulin 2017-03-07 @7895 if (entry && entry->free) {
4827cc37796a02 Yury Kylulin 2017-03-07 7896 entry->free = false;
4827cc37796a02 Yury Kylulin 2017-03-07 7897 entry->vf = vf;
4827cc37796a02 Yury Kylulin 2017-03-07 7898 ether_addr_copy(entry->vf_mac, addr);
4827cc37796a02 Yury Kylulin 2017-03-07 7899
4827cc37796a02 Yury Kylulin 2017-03-07 7900 ret = igb_add_mac_filter(adapter, addr, vf);
4827cc37796a02 Yury Kylulin 2017-03-07 7901 ret = min_t(int, ret, 0);
4827cc37796a02 Yury Kylulin 2017-03-07 7902 } else {
4827cc37796a02 Yury Kylulin 2017-03-07 7903 ret = -ENOSPC;
4827cc37796a02 Yury Kylulin 2017-03-07 7904 }
4827cc37796a02 Yury Kylulin 2017-03-07 7905
4827cc37796a02 Yury Kylulin 2017-03-07 7906 if (ret == -ENOSPC)
4827cc37796a02 Yury Kylulin 2017-03-07 7907 dev_warn(&pdev->dev,
4827cc37796a02 Yury Kylulin 2017-03-07 7908 "VF %d has requested MAC filter but there is no space for it\n",
4827cc37796a02 Yury Kylulin 2017-03-07 7909 vf);
4827cc37796a02 Yury Kylulin 2017-03-07 7910 break;
4827cc37796a02 Yury Kylulin 2017-03-07 7911 default:
4827cc37796a02 Yury Kylulin 2017-03-07 7912 ret = -EINVAL;
4827cc37796a02 Yury Kylulin 2017-03-07 7913 break;
4827cc37796a02 Yury Kylulin 2017-03-07 7914 }
4827cc37796a02 Yury Kylulin 2017-03-07 7915
4827cc37796a02 Yury Kylulin 2017-03-07 7916 return ret;
4827cc37796a02 Yury Kylulin 2017-03-07 7917 }
4827cc37796a02 Yury Kylulin 2017-03-07 7918
:::::: The code at line 7895 was first introduced by commit
:::::: 4827cc37796a02ece7097e01dad8e08f537ac815 igb/igbvf: Add VF MAC filter request capabilities
:::::: TO: Yury Kylulin <yury.kylulin@...el.com>
:::::: CC: Jeff Kirsher <jeffrey.t.kirsher@...el.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists