lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202303250154.HsaEs3hh-lkp@intel.com>
Date:   Sat, 25 Mar 2023 01:16:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     edward.cree@....com, linux-net-drivers@....com,
        davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com,
        edumazet@...gle.com
Cc:     llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
        Edward Cree <ecree.xilinx@...il.com>, netdev@...r.kernel.org,
        habetsm.xilinx@...il.com, michal.swiatkowski@...ux.intel.com
Subject: Re: [PATCH net-next v2 5/6] sfc: add code to register and unregister
 encap matches

Hi,

I love your patch! Perhaps something to improve:

[auto build test WARNING on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/edward-cree-amd-com/sfc-document-TC-to-EF100-MAE-action-translation-concepts/20230324-044845
patch link:    https://lore.kernel.org/r/57c4e599df3fff7bf678c1813445bd6016c6db79.1679603051.git.ecree.xilinx%40gmail.com
patch subject: [PATCH net-next v2 5/6] sfc: add code to register and unregister encap matches
config: arm-randconfig-r025-20230322 (https://download.01.org/0day-ci/archive/20230325/202303250154.HsaEs3hh-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
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://github.com/intel-lab-lkp/linux/commit/48db650a79ec4f4091360a2c1363d1cac6235707
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review edward-cree-amd-com/sfc-document-TC-to-EF100-MAE-action-translation-concepts/20230324-044845
        git checkout 48db650a79ec4f4091360a2c1363d1cac6235707
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/net/ethernet/sfc/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303250154.HsaEs3hh-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/net/ethernet/sfc/tc.c:414:43: warning: variable 'ipv6' is uninitialized when used here [-Wuninitialized]
           rc = efx_mae_check_encap_match_caps(efx, ipv6, extack);
                                                    ^~~~
   drivers/net/ethernet/sfc/tc.c:356:11: note: initialize the variable 'ipv6' to silence this warning
           bool ipv6;
                    ^
                     = 0
   1 warning generated.


vim +/ipv6 +414 drivers/net/ethernet/sfc/tc.c

   348	
   349	__always_unused
   350	static int efx_tc_flower_record_encap_match(struct efx_nic *efx,
   351						    struct efx_tc_match *match,
   352						    enum efx_encap_type type,
   353						    struct netlink_ext_ack *extack)
   354	{
   355		struct efx_tc_encap_match *encap, *old;
   356		bool ipv6;
   357		int rc;
   358	
   359		/* We require that the socket-defining fields (IP addrs and UDP dest
   360		 * port) are present and exact-match.  Other fields are currently not
   361		 * allowed.  This meets what OVS will ask for, and means that we don't
   362		 * need to handle difficult checks for overlapping matches as could
   363		 * come up if we allowed masks or varying sets of match fields.
   364		 */
   365		if (match->mask.enc_dst_ip | match->mask.enc_src_ip) {
   366			if (!IS_ALL_ONES(match->mask.enc_dst_ip)) {
   367				NL_SET_ERR_MSG_MOD(extack,
   368						   "Egress encap match is not exact on dst IP address");
   369				return -EOPNOTSUPP;
   370			}
   371			if (!IS_ALL_ONES(match->mask.enc_src_ip)) {
   372				NL_SET_ERR_MSG_MOD(extack,
   373						   "Egress encap match is not exact on src IP address");
   374				return -EOPNOTSUPP;
   375			}
   376	#ifdef CONFIG_IPV6
   377			if (!ipv6_addr_any(&match->mask.enc_dst_ip6) ||
   378			    !ipv6_addr_any(&match->mask.enc_src_ip6)) {
   379				NL_SET_ERR_MSG_MOD(extack,
   380						   "Egress encap match on both IPv4 and IPv6, don't understand");
   381				return -EOPNOTSUPP;
   382			}
   383		} else {
   384			ipv6 = true;
   385			if (!efx_ipv6_addr_all_ones(&match->mask.enc_dst_ip6)) {
   386				NL_SET_ERR_MSG_MOD(extack,
   387						   "Egress encap match is not exact on dst IP address");
   388				return -EOPNOTSUPP;
   389			}
   390			if (!efx_ipv6_addr_all_ones(&match->mask.enc_src_ip6)) {
   391				NL_SET_ERR_MSG_MOD(extack,
   392						   "Egress encap match is not exact on src IP address");
   393				return -EOPNOTSUPP;
   394			}
   395	#endif
   396		}
   397		if (!IS_ALL_ONES(match->mask.enc_dport)) {
   398			NL_SET_ERR_MSG_MOD(extack, "Egress encap match is not exact on dst UDP port");
   399			return -EOPNOTSUPP;
   400		}
   401		if (match->mask.enc_sport) {
   402			NL_SET_ERR_MSG_MOD(extack, "Egress encap match on src UDP port not supported");
   403			return -EOPNOTSUPP;
   404		}
   405		if (match->mask.enc_ip_tos) {
   406			NL_SET_ERR_MSG_MOD(extack, "Egress encap match on IP ToS not supported");
   407			return -EOPNOTSUPP;
   408		}
   409		if (match->mask.enc_ip_ttl) {
   410			NL_SET_ERR_MSG_MOD(extack, "Egress encap match on IP TTL not supported");
   411			return -EOPNOTSUPP;
   412		}
   413	
 > 414		rc = efx_mae_check_encap_match_caps(efx, ipv6, extack);
   415		if (rc) {
   416			NL_SET_ERR_MSG_FMT_MOD(extack, "MAE hw reports no support for IPv%d encap matches",
   417					       ipv6 ? 6 : 4);
   418			return -EOPNOTSUPP;
   419		}
   420	
   421		encap = kzalloc(sizeof(*encap), GFP_USER);
   422		if (!encap)
   423			return -ENOMEM;
   424		encap->src_ip = match->value.enc_src_ip;
   425		encap->dst_ip = match->value.enc_dst_ip;
   426	#ifdef CONFIG_IPV6
   427		encap->src_ip6 = match->value.enc_src_ip6;
   428		encap->dst_ip6 = match->value.enc_dst_ip6;
   429	#endif
   430		encap->udp_dport = match->value.enc_dport;
   431		encap->tun_type = type;
   432		old = rhashtable_lookup_get_insert_fast(&efx->tc->encap_match_ht,
   433							&encap->linkage,
   434							efx_tc_encap_match_ht_params);
   435		if (old) {
   436			/* don't need our new entry */
   437			kfree(encap);
   438			if (old->tun_type != type) {
   439				NL_SET_ERR_MSG_FMT_MOD(extack,
   440						       "Egress encap match with conflicting tun_type %u != %u",
   441						       old->tun_type, type);
   442				return -EEXIST;
   443			}
   444			if (!refcount_inc_not_zero(&old->ref))
   445				return -EAGAIN;
   446			/* existing entry found */
   447			encap = old;
   448		} else {
   449			rc = efx_mae_register_encap_match(efx, encap);
   450			if (rc) {
   451				NL_SET_ERR_MSG_MOD(extack, "Failed to record egress encap match in HW");
   452				goto fail;
   453			}
   454			refcount_set(&encap->ref, 1);
   455		}
   456		match->encap = encap;
   457		return 0;
   458	fail:
   459		rhashtable_remove_fast(&efx->tc->encap_match_ht, &encap->linkage,
   460				       efx_tc_encap_match_ht_params);
   461		kfree(encap);
   462		return rc;
   463	}
   464	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ