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
.config.gz
Description: application/gzip