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 <t...@herbertland.com>
:::::: CC: David S. Miller <da...@davemloft.net>

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

Attachment: .config.gz
Description: Binary data

Reply via email to