[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 13 Dec 2023 07:10:51 +0800
From: kernel test robot <lkp@...el.com>
To: Lorenzo Bianconi <lorenzo@...nel.org>, netdev@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, lorenzo.bianconi@...hat.com,
davem@...emloft.net, kuba@...nel.org, edumazet@...gle.com,
pabeni@...hat.com, bpf@...r.kernel.org, hawk@...nel.org,
toke@...hat.com, willemdebruijn.kernel@...il.com,
jasowang@...hat.com, sdf@...gle.com
Subject: Re: [PATCH v4 net-next 3/3] xdp: add multi-buff support for xdp
running in generic mode
Hi Lorenzo,
kernel test robot noticed the following build errors:
[auto build test ERROR on net-next/main]
url: https://github.com/intel-lab-lkp/linux/commits/Lorenzo-Bianconi/net-introduce-page_pool-pointer-in-softnet_data-percpu-struct/20231212-181103
base: net-next/main
patch link: https://lore.kernel.org/r/2d0f9388c6509192d88e359a402517a73124b50e.1702375338.git.lorenzo%40kernel.org
patch subject: [PATCH v4 net-next 3/3] xdp: add multi-buff support for xdp running in generic mode
config: sh-edosk7760_defconfig (https://download.01.org/0day-ci/archive/20231213/202312130625.4PfR5846-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231213/202312130625.4PfR5846-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312130625.4PfR5846-lkp@intel.com/
All errors (new ones prefixed by >>):
sh4-linux-ld: net/core/dev.o: in function `netif_skb_segment_for_xdp':
>> net/core/dev.c:5003:(.text+0x2860): undefined reference to `page_pool_alloc_frag'
>> sh4-linux-ld: net/core/dev.c:5003:(.text+0x28fc): undefined reference to `page_pool_alloc_pages'
sh4-linux-ld: net/core/dev.o: in function `net_dev_init':
net/core/dev.c:11882:(.init.text+0x198): undefined reference to `page_pool_create'
vim +5003 net/core/dev.c
4932
4933 static int netif_skb_segment_for_xdp(struct sk_buff **pskb)
4934 {
4935 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
4936 u32 size, truesize, len, max_head_size, off;
4937 struct sk_buff *skb = *pskb, *nskb;
4938 int err, i, head_off;
4939 void *data;
4940
4941 max_head_size = SKB_WITH_OVERHEAD(PAGE_SIZE - XDP_PACKET_HEADROOM);
4942 if (skb->len > max_head_size + MAX_SKB_FRAGS * PAGE_SIZE)
4943 return -ENOMEM;
4944
4945 size = min_t(u32, skb->len, max_head_size);
4946 truesize = SKB_HEAD_ALIGN(size) + XDP_PACKET_HEADROOM;
4947 data = page_pool_dev_alloc_va(sd->page_pool, &truesize);
4948 if (!data)
4949 return -ENOMEM;
4950
4951 nskb = napi_build_skb(data, truesize);
4952 if (!nskb) {
4953 page_pool_free_va(sd->page_pool, data, true);
4954 return -ENOMEM;
4955 }
4956
4957 skb_reserve(nskb, XDP_PACKET_HEADROOM);
4958 skb_copy_header(nskb, skb);
4959 skb_mark_for_recycle(nskb);
4960
4961 err = skb_copy_bits(skb, 0, nskb->data, size);
4962 if (err) {
4963 consume_skb(nskb);
4964 return err;
4965 }
4966 skb_put(nskb, size);
4967
4968 head_off = skb_headroom(nskb) - skb_headroom(skb);
4969 skb_headers_offset_update(nskb, head_off);
4970
4971 off = size;
4972 len = skb->len - off;
4973 for (i = 0; i < MAX_SKB_FRAGS && off < skb->len; i++) {
4974 struct page *page;
4975 u32 page_off;
4976
4977 size = min_t(u32, len, PAGE_SIZE);
4978 truesize = size;
4979
4980 page = page_pool_dev_alloc(sd->page_pool, &page_off,
4981 &truesize);
4982 if (!data) {
4983 consume_skb(nskb);
4984 return -ENOMEM;
4985 }
4986
4987 skb_add_rx_frag(nskb, i, page, page_off, size, truesize);
4988 err = skb_copy_bits(skb, off, page_address(page) + page_off,
4989 size);
4990 if (err) {
4991 consume_skb(nskb);
4992 return err;
4993 }
4994
4995 len -= size;
4996 off += size;
4997 }
4998
4999 consume_skb(skb);
5000 *pskb = nskb;
5001
5002 return 0;
> 5003 }
5004
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists