tree:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
master
head:   63de273f34b5eeb5ead8440f20516fae9b7b1165
commit: aaa5d90b395a72faff797b00d815165ee0e664c0 [1421/1425] net: use indirect 
call wrappers at GRO network layer
config: parisc-c3000_defconfig (attached as .config)
compiler: hppa-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout aaa5d90b395a72faff797b00d815165ee0e664c0
        # save the attached .config to linux build tree
        GCC_VERSION=7.2.0 make.cross ARCH=parisc 

All error/warnings (new ones prefixed by >>):

   In file included from net/core/dev.c:148:0:
   net/core/dev.c: In function 'napi_gro_complete':
>> net/core/dev.c:5364:26: error: 'inet_gro_complete' undeclared (first use in 
>> this function); did you mean 'eth_gro_complete'?
          ipv6_gro_complete, inet_gro_complete,
                             ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
>> net/core/dev.c:5363:9: note: in expansion of macro 'INDIRECT_CALL_INET'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
            ^~~~~~~~~~~~~~~~~~
   net/core/dev.c:5364:26: note: each undeclared identifier is reported only 
once for each function it appears in
          ipv6_gro_complete, inet_gro_complete,
                             ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
>> net/core/dev.c:5363:9: note: in expansion of macro 'INDIRECT_CALL_INET'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
            ^~~~~~~~~~~~~~~~~~
>> net/core/dev.c:5365:7: warning: passing argument 2 of 
>> 'ptype->callbacks.gro_complete' makes integer from pointer without a cast 
>> [-Wint-conversion]
          skb, 0);
          ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
>> net/core/dev.c:5363:9: note: in expansion of macro 'INDIRECT_CALL_INET'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
            ^~~~~~~~~~~~~~~~~~
   net/core/dev.c:5365:7: note: expected 'int' but argument is of type 'struct 
sk_buff *'
          skb, 0);
          ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
>> net/core/dev.c:5363:9: note: in expansion of macro 'INDIRECT_CALL_INET'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
            ^~~~~~~~~~~~~~~~~~
>> net/core/dev.c:5363:28: error: too many arguments to function 
>> 'ptype->callbacks.gro_complete'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
                               ^
   include/linux/indirect_call_wrapper.h:32:39: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                          ^
>> net/core/dev.c:5363:9: note: in expansion of macro 'INDIRECT_CALL_INET'
      err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
            ^~~~~~~~~~~~~~~~~~
   net/core/dev.c: In function 'dev_gro_receive':
>> net/core/dev.c:5566:24: error: 'inet_gro_receive' undeclared (first use in 
>> this function); did you mean 'dev_gro_receive'?
         ipv6_gro_receive, inet_gro_receive,
                           ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
   net/core/dev.c:5565:8: note: in expansion of macro 'INDIRECT_CALL_INET'
      pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
           ^~~~~~~~~~~~~~~~~~
>> net/core/dev.c:5567:6: error: passing argument 2 of 
>> 'ptype->callbacks.gro_receive' from incompatible pointer type 
>> [-Werror=incompatible-pointer-types]
         gro_head, skb);
         ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
   net/core/dev.c:5565:8: note: in expansion of macro 'INDIRECT_CALL_INET'
      pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
           ^~~~~~~~~~~~~~~~~~
   net/core/dev.c:5567:6: note: expected 'struct sk_buff *' but argument is of 
type 'struct list_head *'
         gro_head, skb);
         ^
   include/linux/indirect_call_wrapper.h:32:41: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                            ^~~~~~~~~~~
   net/core/dev.c:5565:8: note: in expansion of macro 'INDIRECT_CALL_INET'
      pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
           ^~~~~~~~~~~~~~~~~~
>> net/core/dev.c:5565:27: error: too many arguments to function 
>> 'ptype->callbacks.gro_receive'
      pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
                              ^
   include/linux/indirect_call_wrapper.h:32:39: note: in definition of macro 
'INDIRECT_CALL_2'
    #define INDIRECT_CALL_2(f, name, ...) f(__VA_ARGS__)
                                          ^
   net/core/dev.c:5565:8: note: in expansion of macro 'INDIRECT_CALL_INET'
      pp = INDIRECT_CALL_INET(ptype->callbacks.gro_receive,
           ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +5364 net/core/dev.c

  5341  
  5342  INDIRECT_CALLABLE_DECLARE(int inet_gro_complete(struct sk_buff *, int));
  5343  INDIRECT_CALLABLE_DECLARE(int ipv6_gro_complete(struct sk_buff *, int));
  5344  static int napi_gro_complete(struct sk_buff *skb)
  5345  {
  5346          struct packet_offload *ptype;
  5347          __be16 type = skb->protocol;
  5348          struct list_head *head = &offload_base;
  5349          int err = -ENOENT;
  5350  
  5351          BUILD_BUG_ON(sizeof(struct napi_gro_cb) > sizeof(skb->cb));
  5352  
  5353          if (NAPI_GRO_CB(skb)->count == 1) {
  5354                  skb_shinfo(skb)->gso_size = 0;
  5355                  goto out;
  5356          }
  5357  
  5358          rcu_read_lock();
  5359          list_for_each_entry_rcu(ptype, head, list) {
  5360                  if (ptype->type != type || 
!ptype->callbacks.gro_complete)
  5361                          continue;
  5362  
> 5363                  err = INDIRECT_CALL_INET(ptype->callbacks.gro_complete,
> 5364                                           ipv6_gro_complete, 
> inet_gro_complete,
> 5365                                           skb, 0);
  5366                  break;
  5367          }
  5368          rcu_read_unlock();
  5369  
  5370          if (err) {
  5371                  WARN_ON(&ptype->list == head);
  5372                  kfree_skb(skb);
  5373                  return NET_RX_SUCCESS;
  5374          }
  5375  
  5376  out:
  5377          return netif_receive_skb_internal(skb);
  5378  }
  5379  

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

Attachment: .config.gz
Description: application/gzip

Reply via email to