public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel•com>
To: edward.cree@amd•com, linux-net-drivers@amd•com,
	davem@davemloft•net, kuba@kernel•org, pabeni@redhat•com,
	edumazet@google•com
Cc: llvm@lists•linux.dev, oe-kbuild-all@lists•linux.dev,
	Edward Cree <ecree.xilinx@gmail•com>,
	netdev@vger•kernel.org, habetsm.xilinx@gmail•com,
	michal.swiatkowski@linux•intel.com
Subject: Re: [PATCH net-next v2 5/6] sfc: add code to register and unregister encap matches
Date: Sat, 25 Mar 2023 01:16:43 +0800	[thread overview]
Message-ID: <202303250154.HsaEs3hh-lkp@intel.com> (raw)
In-Reply-To: <57c4e599df3fff7bf678c1813445bd6016c6db79.1679603051.git.ecree.xilinx@gmail.com>

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@intel•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

  parent reply	other threads:[~2023-03-24 17:19 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23 20:45 [PATCH net-next v2 0/6] sfc: support TC decap rules edward.cree
2023-03-23 20:45 ` [PATCH net-next v2 1/6] sfc: document TC-to-EF100-MAE action translation concepts edward.cree
2023-03-25 12:05   ` Simon Horman
2023-03-23 20:45 ` [PATCH net-next v2 2/6] sfc: add notion of match on enc keys to MAE machinery edward.cree
2023-03-25 12:03   ` Simon Horman
2023-03-27  8:20     ` Edward Cree
2023-03-27  8:47       ` Simon Horman
2023-03-23 20:45 ` [PATCH net-next v2 3/6] sfc: handle enc keys in efx_tc_flower_parse_match() edward.cree
2023-03-25 12:07   ` Simon Horman
2023-03-23 20:45 ` [PATCH net-next v2 4/6] sfc: add functions to insert encap matches into the MAE edward.cree
2023-03-25 12:04   ` Simon Horman
2023-03-27  8:28     ` Edward Cree
2023-03-27  8:48       ` Simon Horman
2023-03-23 20:45 ` [PATCH net-next v2 5/6] sfc: add code to register and unregister encap matches edward.cree
2023-03-24  5:05   ` Jakub Kicinski
2023-03-24  9:10     ` Martin Habets
2023-03-24 18:37       ` Edward Cree
2023-03-24 17:16   ` kernel test robot [this message]
2023-03-26  9:18   ` Simon Horman
2023-03-23 20:45 ` [PATCH net-next v2 6/6] sfc: add offloading of 'foreign' TC (decap) rules edward.cree
2023-03-26  9:15   ` Simon Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202303250154.HsaEs3hh-lkp@intel.com \
    --to=lkp@intel$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=ecree.xilinx@gmail$(echo .)com \
    --cc=edumazet@google$(echo .)com \
    --cc=edward.cree@amd$(echo .)com \
    --cc=habetsm.xilinx@gmail$(echo .)com \
    --cc=kuba@kernel$(echo .)org \
    --cc=linux-net-drivers@amd$(echo .)com \
    --cc=llvm@lists$(echo .)linux.dev \
    --cc=michal.swiatkowski@linux$(echo .)intel.com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=oe-kbuild-all@lists$(echo .)linux.dev \
    --cc=pabeni@redhat$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox