[nf-next:master 4/14] net/netfilter/nft_set_pipapo.c:412:6: error: static declaration of 'nft_pipapo_lookup' follows non-static declaration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
head:   6d6dbfe7fe1e6e1fdeda2a947036339a513ca690
commit: a890630241c76a5865b89a4fbdc39f1319754dee [4/14] netfilter: nf_tables: prefer direct calls for set lookups
config: nios2-randconfig-s032-20210528 (attached as .config)
compiler: nios2-linux-gcc (GCC) 9.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git/commit/?id=a890630241c76a5865b89a4fbdc39f1319754dee
        git remote add nf-next https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git
        git fetch --no-tags nf-next master
        git checkout a890630241c76a5865b89a4fbdc39f1319754dee
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=nios2 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

>> net/netfilter/nft_set_pipapo.c:412:6: error: static declaration of 'nft_pipapo_lookup' follows non-static declaration
     412 | bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
         |      ^~~~~~~~~~~~~~~~~
   In file included from net/netfilter/nft_set_pipapo.c:343:
   net/netfilter/nft_set_pipapo.h:181:6: note: previous declaration of 'nft_pipapo_lookup' was here
     181 | bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
         |      ^~~~~~~~~~~~~~~~~


vim +/nft_pipapo_lookup +412 net/netfilter/nft_set_pipapo.c

3c4287f62044a9 Stefano Brivio   2020-01-22  399  
3c4287f62044a9 Stefano Brivio   2020-01-22  400  /**
3c4287f62044a9 Stefano Brivio   2020-01-22  401   * nft_pipapo_lookup() - Lookup function
3c4287f62044a9 Stefano Brivio   2020-01-22  402   * @net:	Network namespace
3c4287f62044a9 Stefano Brivio   2020-01-22  403   * @set:	nftables API set representation
3db86c397f608b Andrew Lunn      2020-07-13  404   * @key:	nftables API element representation containing key data
3c4287f62044a9 Stefano Brivio   2020-01-22  405   * @ext:	nftables API extension pointer, filled with matching reference
3c4287f62044a9 Stefano Brivio   2020-01-22  406   *
3c4287f62044a9 Stefano Brivio   2020-01-22  407   * For more details, see DOC: Theory of Operation.
3c4287f62044a9 Stefano Brivio   2020-01-22  408   *
3c4287f62044a9 Stefano Brivio   2020-01-22  409   * Return: true on match, false otherwise.
3c4287f62044a9 Stefano Brivio   2020-01-22  410   */
a890630241c76a Florian Westphal 2021-05-13  411  INDIRECT_CALLABLE_SCOPE
f0b3d338064e1f Stefano Brivio   2021-05-10 @412  bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
3c4287f62044a9 Stefano Brivio   2020-01-22  413  		       const u32 *key, const struct nft_set_ext **ext)
3c4287f62044a9 Stefano Brivio   2020-01-22  414  {
3c4287f62044a9 Stefano Brivio   2020-01-22  415  	struct nft_pipapo *priv = nft_set_priv(set);
3c4287f62044a9 Stefano Brivio   2020-01-22  416  	unsigned long *res_map, *fill_map;
3c4287f62044a9 Stefano Brivio   2020-01-22  417  	u8 genmask = nft_genmask_cur(net);
3c4287f62044a9 Stefano Brivio   2020-01-22  418  	const u8 *rp = (const u8 *)key;
3c4287f62044a9 Stefano Brivio   2020-01-22  419  	struct nft_pipapo_match *m;
3c4287f62044a9 Stefano Brivio   2020-01-22  420  	struct nft_pipapo_field *f;
3c4287f62044a9 Stefano Brivio   2020-01-22  421  	bool map_index;
3c4287f62044a9 Stefano Brivio   2020-01-22  422  	int i;
3c4287f62044a9 Stefano Brivio   2020-01-22  423  
3c4287f62044a9 Stefano Brivio   2020-01-22  424  	local_bh_disable();
3c4287f62044a9 Stefano Brivio   2020-01-22  425  
3c4287f62044a9 Stefano Brivio   2020-01-22  426  	map_index = raw_cpu_read(nft_pipapo_scratch_index);
3c4287f62044a9 Stefano Brivio   2020-01-22  427  
3c4287f62044a9 Stefano Brivio   2020-01-22  428  	m = rcu_dereference(priv->match);
3c4287f62044a9 Stefano Brivio   2020-01-22  429  
3c4287f62044a9 Stefano Brivio   2020-01-22  430  	if (unlikely(!m || !*raw_cpu_ptr(m->scratch)))
3c4287f62044a9 Stefano Brivio   2020-01-22  431  		goto out;
3c4287f62044a9 Stefano Brivio   2020-01-22  432  
3c4287f62044a9 Stefano Brivio   2020-01-22  433  	res_map  = *raw_cpu_ptr(m->scratch) + (map_index ? m->bsize_max : 0);
3c4287f62044a9 Stefano Brivio   2020-01-22  434  	fill_map = *raw_cpu_ptr(m->scratch) + (map_index ? 0 : m->bsize_max);
3c4287f62044a9 Stefano Brivio   2020-01-22  435  
3c4287f62044a9 Stefano Brivio   2020-01-22  436  	memset(res_map, 0xff, m->bsize_max * sizeof(*res_map));
3c4287f62044a9 Stefano Brivio   2020-01-22  437  
3c4287f62044a9 Stefano Brivio   2020-01-22  438  	nft_pipapo_for_each_field(f, i, m) {
3c4287f62044a9 Stefano Brivio   2020-01-22  439  		bool last = i == m->field_count - 1;
e807b13cb3e3bc Stefano Brivio   2020-03-07  440  		int b;
3c4287f62044a9 Stefano Brivio   2020-01-22  441  
e807b13cb3e3bc Stefano Brivio   2020-03-07  442  		/* For each bit group: select lookup table bucket depending on
3c4287f62044a9 Stefano Brivio   2020-01-22  443  		 * packet bytes value, then AND bucket value
3c4287f62044a9 Stefano Brivio   2020-01-22  444  		 */
4051f43116cdc7 Stefano Brivio   2020-03-07  445  		if (likely(f->bb == 8))
4051f43116cdc7 Stefano Brivio   2020-03-07  446  			pipapo_and_field_buckets_8bit(f, res_map, rp);
4051f43116cdc7 Stefano Brivio   2020-03-07  447  		else
e807b13cb3e3bc Stefano Brivio   2020-03-07  448  			pipapo_and_field_buckets_4bit(f, res_map, rp);
4051f43116cdc7 Stefano Brivio   2020-03-07  449  		NFT_PIPAPO_GROUP_BITS_ARE_8_OR_4;
3c4287f62044a9 Stefano Brivio   2020-01-22  450  
e807b13cb3e3bc Stefano Brivio   2020-03-07  451  		rp += f->groups / NFT_PIPAPO_GROUPS_PER_BYTE(f);
3c4287f62044a9 Stefano Brivio   2020-01-22  452  
3c4287f62044a9 Stefano Brivio   2020-01-22  453  		/* Now populate the bitmap for the next field, unless this is
3c4287f62044a9 Stefano Brivio   2020-01-22  454  		 * the last field, in which case return the matched 'ext'
3c4287f62044a9 Stefano Brivio   2020-01-22  455  		 * pointer if any.
3c4287f62044a9 Stefano Brivio   2020-01-22  456  		 *
3c4287f62044a9 Stefano Brivio   2020-01-22  457  		 * Now res_map contains the matching bitmap, and fill_map is the
3c4287f62044a9 Stefano Brivio   2020-01-22  458  		 * bitmap for the next field.
3c4287f62044a9 Stefano Brivio   2020-01-22  459  		 */
3c4287f62044a9 Stefano Brivio   2020-01-22  460  next_match:
3c4287f62044a9 Stefano Brivio   2020-01-22  461  		b = pipapo_refill(res_map, f->bsize, f->rules, fill_map, f->mt,
3c4287f62044a9 Stefano Brivio   2020-01-22  462  				  last);
3c4287f62044a9 Stefano Brivio   2020-01-22  463  		if (b < 0) {
3c4287f62044a9 Stefano Brivio   2020-01-22  464  			raw_cpu_write(nft_pipapo_scratch_index, map_index);
3c4287f62044a9 Stefano Brivio   2020-01-22  465  			local_bh_enable();
3c4287f62044a9 Stefano Brivio   2020-01-22  466  
3c4287f62044a9 Stefano Brivio   2020-01-22  467  			return false;
3c4287f62044a9 Stefano Brivio   2020-01-22  468  		}
3c4287f62044a9 Stefano Brivio   2020-01-22  469  
3c4287f62044a9 Stefano Brivio   2020-01-22  470  		if (last) {
3c4287f62044a9 Stefano Brivio   2020-01-22  471  			*ext = &f->mt[b].e->ext;
3c4287f62044a9 Stefano Brivio   2020-01-22  472  			if (unlikely(nft_set_elem_expired(*ext) ||
3c4287f62044a9 Stefano Brivio   2020-01-22  473  				     !nft_set_elem_active(*ext, genmask)))
3c4287f62044a9 Stefano Brivio   2020-01-22  474  				goto next_match;
3c4287f62044a9 Stefano Brivio   2020-01-22  475  
3c4287f62044a9 Stefano Brivio   2020-01-22  476  			/* Last field: we're just returning the key without
3c4287f62044a9 Stefano Brivio   2020-01-22  477  			 * filling the initial bitmap for the next field, so the
3c4287f62044a9 Stefano Brivio   2020-01-22  478  			 * current inactive bitmap is clean and can be reused as
3c4287f62044a9 Stefano Brivio   2020-01-22  479  			 * *next* bitmap (not initial) for the next packet.
3c4287f62044a9 Stefano Brivio   2020-01-22  480  			 */
3c4287f62044a9 Stefano Brivio   2020-01-22  481  			raw_cpu_write(nft_pipapo_scratch_index, map_index);
3c4287f62044a9 Stefano Brivio   2020-01-22  482  			local_bh_enable();
3c4287f62044a9 Stefano Brivio   2020-01-22  483  
3c4287f62044a9 Stefano Brivio   2020-01-22  484  			return true;
3c4287f62044a9 Stefano Brivio   2020-01-22  485  		}
3c4287f62044a9 Stefano Brivio   2020-01-22  486  
3c4287f62044a9 Stefano Brivio   2020-01-22  487  		/* Swap bitmap indices: res_map is the initial bitmap for the
3c4287f62044a9 Stefano Brivio   2020-01-22  488  		 * next field, and fill_map is guaranteed to be all-zeroes at
3c4287f62044a9 Stefano Brivio   2020-01-22  489  		 * this point.
3c4287f62044a9 Stefano Brivio   2020-01-22  490  		 */
3c4287f62044a9 Stefano Brivio   2020-01-22  491  		map_index = !map_index;
3c4287f62044a9 Stefano Brivio   2020-01-22  492  		swap(res_map, fill_map);
3c4287f62044a9 Stefano Brivio   2020-01-22  493  
e807b13cb3e3bc Stefano Brivio   2020-03-07  494  		rp += NFT_PIPAPO_GROUPS_PADDING(f);
3c4287f62044a9 Stefano Brivio   2020-01-22  495  	}
3c4287f62044a9 Stefano Brivio   2020-01-22  496  
3c4287f62044a9 Stefano Brivio   2020-01-22  497  out:
3c4287f62044a9 Stefano Brivio   2020-01-22  498  	local_bh_enable();
3c4287f62044a9 Stefano Brivio   2020-01-22  499  	return false;
3c4287f62044a9 Stefano Brivio   2020-01-22  500  }
3c4287f62044a9 Stefano Brivio   2020-01-22  501  

:::::: The code at line 412 was first introduced by commit
:::::: f0b3d338064e1fe7531f0d2977e35f3b334abfb4 netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version

:::::: TO: Stefano Brivio <sbrivio@xxxxxxxxxx>
:::::: CC: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux