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]
Date:	Thu, 11 Aug 2016 05:58:07 +0800
From:	kbuild test robot <lkp@...el.com>
To:	Hadar Hen Zion <hadarh@...lanox.com>
Cc:	kbuild-all@...org, "David S. Miller" <davem@...emloft.net>,
	netdev@...r.kernel.org, Jiri Pirko <jiri@...lanox.com>,
	Tom Herbert <tom@...bertland.com>,
	Or Gerlitz <ogerlitz@...lanox.com>,
	Amir Vadai <amirv@...lanox.com>,
	Hadar Hen Zion <hadarh@...lanox.com>
Subject: Re: [PATCH net-next 2/4] flow_dissector: Get vlan priority in
 addition to vlan id

Hi Hadar,

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Hadar-Hen-Zion/flow_dissector-Get-vlan-info-from-skb-vlan_tci-instead-of-skb-data/20160811-042500
config: cris-etrax-100lx_v2_defconfig (attached as .config)
compiler: cris-linux-gcc (GCC) 4.6.3
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=cris 

All errors (new ones prefixed by >>):

   In function 'flow_keys_hash_length.isra.6',
       inlined from '__flow_hash_from_keys' at net/core/flow_dissector.c:599:26,
       inlined from 'flow_hash_from_keys' at net/core/flow_dissector.c:610:2:
>> net/core/flow_dissector.c:512:2: error: call to '__compiletime_assert_512' declared with attribute error: BUILD_BUG_ON failed: (sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32)
   In function 'flow_keys_hash_length.isra.6',
       inlined from '__flow_hash_from_keys' at net/core/flow_dissector.c:599:26,
       inlined from '__skb_get_hash_symmetric' at net/core/flow_dissector.c:663:2:
>> net/core/flow_dissector.c:512:2: error: call to '__compiletime_assert_512' declared with attribute error: BUILD_BUG_ON failed: (sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32)
   In function 'flow_keys_hash_length.isra.6',
       inlined from '__flow_hash_from_keys' at net/core/flow_dissector.c:599:26,
       inlined from '__skb_get_hash' at net/core/flow_dissector.c:620:2:
>> net/core/flow_dissector.c:512:2: error: call to '__compiletime_assert_512' declared with attribute error: BUILD_BUG_ON failed: (sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32)
   In function 'flow_keys_hash_length.isra.6',
       inlined from '__flow_hash_from_keys' at net/core/flow_dissector.c:599:26,
       inlined from 'skb_get_hash_perturb' at net/core/flow_dissector.c:620:2:
>> net/core/flow_dissector.c:512:2: error: call to '__compiletime_assert_512' declared with attribute error: BUILD_BUG_ON failed: (sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32)

vim +/__compiletime_assert_512 +512 net/core/flow_dissector.c

20a17bf6 David S. Miller      2015-09-01  506  	return (const u32 *)(p + FLOW_KEYS_HASH_OFFSET);
42aecaa9 Tom Herbert          2015-06-04  507  }
42aecaa9 Tom Herbert          2015-06-04  508  
20a17bf6 David S. Miller      2015-09-01  509  static inline size_t flow_keys_hash_length(const struct flow_keys *flow)
42aecaa9 Tom Herbert          2015-06-04  510  {
c3f83241 Tom Herbert          2015-06-04  511  	size_t diff = FLOW_KEYS_HASH_OFFSET + sizeof(flow->addrs);
42aecaa9 Tom Herbert          2015-06-04 @512  	BUILD_BUG_ON((sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32));
c3f83241 Tom Herbert          2015-06-04  513  	BUILD_BUG_ON(offsetof(typeof(*flow), addrs) !=
c3f83241 Tom Herbert          2015-06-04  514  		     sizeof(*flow) - sizeof(flow->addrs));
c3f83241 Tom Herbert          2015-06-04  515  
c3f83241 Tom Herbert          2015-06-04  516  	switch (flow->control.addr_type) {
c3f83241 Tom Herbert          2015-06-04  517  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
c3f83241 Tom Herbert          2015-06-04  518  		diff -= sizeof(flow->addrs.v4addrs);
c3f83241 Tom Herbert          2015-06-04  519  		break;
c3f83241 Tom Herbert          2015-06-04  520  	case FLOW_DISSECTOR_KEY_IPV6_ADDRS:
c3f83241 Tom Herbert          2015-06-04  521  		diff -= sizeof(flow->addrs.v6addrs);
c3f83241 Tom Herbert          2015-06-04  522  		break;
9f249089 Tom Herbert          2015-06-04  523  	case FLOW_DISSECTOR_KEY_TIPC_ADDRS:
9f249089 Tom Herbert          2015-06-04  524  		diff -= sizeof(flow->addrs.tipcaddrs);
9f249089 Tom Herbert          2015-06-04  525  		break;
c3f83241 Tom Herbert          2015-06-04  526  	}
c3f83241 Tom Herbert          2015-06-04  527  	return (sizeof(*flow) - diff) / sizeof(u32);
66415cf8 Hannes Frederic Sowa 2013-10-23  528  }
66415cf8 Hannes Frederic Sowa 2013-10-23  529  
c3f83241 Tom Herbert          2015-06-04  530  __be32 flow_get_u32_src(const struct flow_keys *flow)
5ed20a68 Tom Herbert          2014-07-01  531  {
c3f83241 Tom Herbert          2015-06-04  532  	switch (flow->control.addr_type) {
c3f83241 Tom Herbert          2015-06-04  533  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
c3f83241 Tom Herbert          2015-06-04  534  		return flow->addrs.v4addrs.src;
c3f83241 Tom Herbert          2015-06-04  535  	case FLOW_DISSECTOR_KEY_IPV6_ADDRS:
c3f83241 Tom Herbert          2015-06-04  536  		return (__force __be32)ipv6_addr_hash(
c3f83241 Tom Herbert          2015-06-04  537  			&flow->addrs.v6addrs.src);
9f249089 Tom Herbert          2015-06-04  538  	case FLOW_DISSECTOR_KEY_TIPC_ADDRS:
9f249089 Tom Herbert          2015-06-04  539  		return flow->addrs.tipcaddrs.srcnode;
c3f83241 Tom Herbert          2015-06-04  540  	default:
c3f83241 Tom Herbert          2015-06-04  541  		return 0;
c3f83241 Tom Herbert          2015-06-04  542  	}
c3f83241 Tom Herbert          2015-06-04  543  }
c3f83241 Tom Herbert          2015-06-04  544  EXPORT_SYMBOL(flow_get_u32_src);
c3f83241 Tom Herbert          2015-06-04  545  
c3f83241 Tom Herbert          2015-06-04  546  __be32 flow_get_u32_dst(const struct flow_keys *flow)
c3f83241 Tom Herbert          2015-06-04  547  {
c3f83241 Tom Herbert          2015-06-04  548  	switch (flow->control.addr_type) {
c3f83241 Tom Herbert          2015-06-04  549  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
c3f83241 Tom Herbert          2015-06-04  550  		return flow->addrs.v4addrs.dst;
c3f83241 Tom Herbert          2015-06-04  551  	case FLOW_DISSECTOR_KEY_IPV6_ADDRS:
c3f83241 Tom Herbert          2015-06-04  552  		return (__force __be32)ipv6_addr_hash(
c3f83241 Tom Herbert          2015-06-04  553  			&flow->addrs.v6addrs.dst);
c3f83241 Tom Herbert          2015-06-04  554  	default:
c3f83241 Tom Herbert          2015-06-04  555  		return 0;
c3f83241 Tom Herbert          2015-06-04  556  	}
c3f83241 Tom Herbert          2015-06-04  557  }
c3f83241 Tom Herbert          2015-06-04  558  EXPORT_SYMBOL(flow_get_u32_dst);
5ed20a68 Tom Herbert          2014-07-01  559  
c3f83241 Tom Herbert          2015-06-04  560  static inline void __flow_hash_consistentify(struct flow_keys *keys)
c3f83241 Tom Herbert          2015-06-04  561  {
c3f83241 Tom Herbert          2015-06-04  562  	int addr_diff, i;
c3f83241 Tom Herbert          2015-06-04  563  
c3f83241 Tom Herbert          2015-06-04  564  	switch (keys->control.addr_type) {
c3f83241 Tom Herbert          2015-06-04  565  	case FLOW_DISSECTOR_KEY_IPV4_ADDRS:
c3f83241 Tom Herbert          2015-06-04  566  		addr_diff = (__force u32)keys->addrs.v4addrs.dst -
c3f83241 Tom Herbert          2015-06-04  567  			    (__force u32)keys->addrs.v4addrs.src;
c3f83241 Tom Herbert          2015-06-04  568  		if ((addr_diff < 0) ||
c3f83241 Tom Herbert          2015-06-04  569  		    (addr_diff == 0 &&
c3f83241 Tom Herbert          2015-06-04  570  		     ((__force u16)keys->ports.dst <
c3f83241 Tom Herbert          2015-06-04  571  		      (__force u16)keys->ports.src))) {
c3f83241 Tom Herbert          2015-06-04  572  			swap(keys->addrs.v4addrs.src, keys->addrs.v4addrs.dst);
c3f83241 Tom Herbert          2015-06-04  573  			swap(keys->ports.src, keys->ports.dst);
c3f83241 Tom Herbert          2015-06-04  574  		}
c3f83241 Tom Herbert          2015-06-04  575  		break;
c3f83241 Tom Herbert          2015-06-04  576  	case FLOW_DISSECTOR_KEY_IPV6_ADDRS:
c3f83241 Tom Herbert          2015-06-04  577  		addr_diff = memcmp(&keys->addrs.v6addrs.dst,
c3f83241 Tom Herbert          2015-06-04  578  				   &keys->addrs.v6addrs.src,
c3f83241 Tom Herbert          2015-06-04  579  				   sizeof(keys->addrs.v6addrs.dst));
c3f83241 Tom Herbert          2015-06-04  580  		if ((addr_diff < 0) ||
c3f83241 Tom Herbert          2015-06-04  581  		    (addr_diff == 0 &&
c3f83241 Tom Herbert          2015-06-04  582  		     ((__force u16)keys->ports.dst <
c3f83241 Tom Herbert          2015-06-04  583  		      (__force u16)keys->ports.src))) {
c3f83241 Tom Herbert          2015-06-04  584  			for (i = 0; i < 4; i++)
c3f83241 Tom Herbert          2015-06-04  585  				swap(keys->addrs.v6addrs.src.s6_addr32[i],
c3f83241 Tom Herbert          2015-06-04  586  				     keys->addrs.v6addrs.dst.s6_addr32[i]);
59346afe Jiri Pirko           2015-05-12  587  			swap(keys->ports.src, keys->ports.dst);
5ed20a68 Tom Herbert          2014-07-01  588  		}
c3f83241 Tom Herbert          2015-06-04  589  		break;
c3f83241 Tom Herbert          2015-06-04  590  	}
c3f83241 Tom Herbert          2015-06-04  591  }
c3f83241 Tom Herbert          2015-06-04  592  
c3f83241 Tom Herbert          2015-06-04  593  static inline u32 __flow_hash_from_keys(struct flow_keys *keys, u32 keyval)
c3f83241 Tom Herbert          2015-06-04  594  {
c3f83241 Tom Herbert          2015-06-04  595  	u32 hash;
c3f83241 Tom Herbert          2015-06-04  596  
c3f83241 Tom Herbert          2015-06-04  597  	__flow_hash_consistentify(keys);
5ed20a68 Tom Herbert          2014-07-01  598  
20a17bf6 David S. Miller      2015-09-01 @599  	hash = __flow_hash_words(flow_keys_hash_start(keys),
42aecaa9 Tom Herbert          2015-06-04  600  				 flow_keys_hash_length(keys), keyval);
5ed20a68 Tom Herbert          2014-07-01  601  	if (!hash)
5ed20a68 Tom Herbert          2014-07-01  602  		hash = 1;

:::::: The code at line 512 was first introduced by commit
:::::: 42aecaa9bb2bd57eb8d61b4565cee5d3640863fb net: Get skb hash over flow_keys structure

:::::: TO: Tom Herbert <tom@...bertland.com>
:::::: CC: David S. Miller <davem@...emloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/octet-stream" (8277 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ