tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 05607873db411ec3c614313b43cec60138c26a99 commit: e992b88fa60f2e405a35c281c549b4caf3cd78f3 [6913/7311] net: hns3: support set/get VxLAN rule of rx flow director by ethtool config: loongarch-randconfig-r113-20240408 (https://download.01.org/0day-ci/archive/20240409/202404090532.QLIDcYg8-lkp@i...) compiler: loongarch64-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240409/202404090532.QLIDcYg8-lkp@i...)
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@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202404090532.QLIDcYg8-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6003:37: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6004:37: sparse: sparse: restricted __le32 degrades to integer
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6238:17: sparse: sparse: restricted __be32 degrades to integer
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6332:17: sparse: sparse: restricted __be32 degrades to integer drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:13360:21: sparse: sparse: symbol 'hclge_ops' was not declared. Should it be static? drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c: note: in included file (through include/linux/mmzone.h, include/linux/gfp.h, include/linux/slab.h, ...): include/linux/page-flags.h:245:46: sparse: sparse: self-comparison always evaluates to false drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:5574:31: sparse: sparse: context imbalance in 'hclge_sync_fd_user_def_cfg' - unexpected unlock
vim +6003 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
5945 5946 int offset, moffset, ip_offset; 5947 enum HCLGE_FD_KEY_OPT key_opt; 5948 u16 tmp_x_s, tmp_y_s; 5949 u32 tmp_x_l, tmp_y_l; 5950 u8 *p = (u8 *)rule; 5951 int i; 5952 5953 if (rule->unused_tuple & BIT(tuple_bit)) 5954 return true; 5955 5956 key_opt = tuple_key_info[tuple_bit].key_opt; 5957 offset = tuple_key_info[tuple_bit].offset; 5958 moffset = tuple_key_info[tuple_bit].moffset; 5959 5960 switch (key_opt) { 5961 case KEY_OPT_U8: 5962 calc_x(*key_x, p[offset], p[moffset]); 5963 calc_y(*key_y, p[offset], p[moffset]); 5964 5965 return true; 5966 case KEY_OPT_LE16: 5967 calc_x(tmp_x_s, *(u16 *)(&p[offset]), *(u16 *)(&p[moffset])); 5968 calc_y(tmp_y_s, *(u16 *)(&p[offset]), *(u16 *)(&p[moffset])); 5969 *(__le16 *)key_x = cpu_to_le16(tmp_x_s); 5970 *(__le16 *)key_y = cpu_to_le16(tmp_y_s); 5971 5972 return true; 5973 case KEY_OPT_LE32: 5974 calc_x(tmp_x_l, *(u32 *)(&p[offset]), *(u32 *)(&p[moffset])); 5975 calc_y(tmp_y_l, *(u32 *)(&p[offset]), *(u32 *)(&p[moffset])); 5976 *(__le32 *)key_x = cpu_to_le32(tmp_x_l); 5977 *(__le32 *)key_y = cpu_to_le32(tmp_y_l); 5978 5979 return true; 5980 case KEY_OPT_MAC: 5981 for (i = 0; i < ETH_ALEN; i++) { 5982 calc_x(key_x[ETH_ALEN - 1 - i], p[offset + i], 5983 p[moffset + i]); 5984 calc_y(key_y[ETH_ALEN - 1 - i], p[offset + i], 5985 p[moffset + i]); 5986 } 5987 5988 return true; 5989 case KEY_OPT_IP: 5990 ip_offset = IPV4_INDEX * sizeof(u32); 5991 calc_x(tmp_x_l, *(u32 *)(&p[offset + ip_offset]), 5992 *(u32 *)(&p[moffset + ip_offset])); 5993 calc_y(tmp_y_l, *(u32 *)(&p[offset + ip_offset]), 5994 *(u32 *)(&p[moffset + ip_offset])); 5995 *(__le32 *)key_x = cpu_to_le32(tmp_x_l); 5996 *(__le32 *)key_y = cpu_to_le32(tmp_y_l); 5997 5998 return true; 5999 case KEY_OPT_VNI: 6000 calc_x(tmp_x_l, *(u32 *)(&p[offset]), *(u32 *)(&p[moffset])); 6001 calc_y(tmp_y_l, *(u32 *)(&p[offset]), *(u32 *)(&p[moffset])); 6002 for (i = 0; i < HCLGE_VNI_LENGTH; i++) {
6003 key_x[i] = (cpu_to_le32(tmp_x_l) >> (i * BITS_PER_BYTE)) & 0xFF;
6004 key_y[i] = (cpu_to_le32(tmp_y_l) >> (i * BITS_PER_BYTE)) & 0xFF; 6005 } 6006 return true; 6007 default: 6008 return false; 6009 } 6010 } 6011