* [isilence:zcrx/v9-wip 20/21] drivers/net/veth.c:831:24: error: implicit declaration of function 'io_iov_get_page'
@ 2024-12-11 12:32 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-12-11 12:32 UTC (permalink / raw)
To: Pavel Begunkov; +Cc: oe-kbuild-all
tree: https://github.com/isilence/linux zcrx/v9-wip
head: 57539d7d0009112e33f2baf7a975d4d2ba2c50cf
commit: 5a2e200685de32ee0c8931b0b094fcccd6c1754a [20/21] [NOT-FOR-UPSTREAM] veth: add support for io_uring zc rx
config: powerpc-randconfig-003-20241211 (https://download.01.org/0day-ci/archive/20241211/202412112006.x91csM9j-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241211/202412112006.x91csM9j-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412112006.x91csM9j-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/net/veth.c: In function 'veth_iou_rcv_skb':
>> drivers/net/veth.c:831:24: error: implicit declaration of function 'io_iov_get_page' [-Wimplicit-function-declaration]
831 | page = io_iov_get_page(netmem);
| ^~~~~~~~~~~~~~~
>> drivers/net/veth.c:831:22: error: assignment to 'struct page *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
831 | page = io_iov_get_page(netmem);
| ^
vim +/io_iov_get_page +831 drivers/net/veth.c
771
772 static noinline struct sk_buff *veth_iou_rcv_skb(struct veth_rq *rq,
773 struct sk_buff *skb)
774 {
775 struct sk_buff *nskb;
776 u32 size, len, off, max_head_size;
777 struct page *page;
778 int ret, i, head_off;
779 void *vaddr;
780
781 /* Testing only, randomly send normal pages to test copy fallback */
782 if (ktime_get_ns() % 16 == 0)
783 return skb;
784
785 skb_prepare_for_gro(skb);
786 max_head_size = skb_headlen(skb);
787
788 rcu_read_lock();
789 nskb = napi_alloc_skb(&rq->xdp_napi, max_head_size);
790 if (!nskb)
791 goto drop;
792
793 skb_copy_header(nskb, skb);
794 skb_mark_for_recycle(nskb);
795
796 size = max_head_size;
797 if (skb_copy_bits(skb, 0, nskb->data, size)) {
798 consume_skb(nskb);
799 goto drop;
800 }
801 skb_put(nskb, size);
802 head_off = skb_headroom(nskb) - skb_headroom(skb);
803 skb_headers_offset_update(nskb, head_off);
804
805 /* Allocate paged area of new skb */
806 off = size;
807 len = skb->len - off;
808
809 for (i = 0; i < MAX_SKB_FRAGS && off < skb->len; i++) {
810 netmem_ref netmem;
811 unsigned frag_offset;
812
813 size = min_t(u32, len, PAGE_SIZE);
814 // netmem = page_pool_alloc_frag_netmem(rq->page_pool,
815 // &frag_offset, size,
816 // GFP_ATOMIC | __GFP_NOWARN);
817
818 printk("alloc frag %p size %i off %i\n", (void*)netmem,
819 (int)size, (int)frag_offset);
820
821 netmem = page_pool_alloc_netmem(rq->page_pool, GFP_ATOMIC | __GFP_NOWARN);
822 if (!netmem) {
823 consume_skb(nskb);
824 goto drop;
825 }
826 if (WARN_ON_ONCE(!netmem_is_net_iov(netmem))) {
827 consume_skb(nskb);
828 goto drop;
829 }
830
> 831 page = io_iov_get_page(netmem);
832 if (WARN_ON_ONCE(!page))
833 goto drop;
834
835 skb_add_rx_frag_netmem(nskb, i, netmem, frag_offset, size,
836 PAGE_SIZE);
837
838 vaddr = kmap_atomic(page);
839 ret = skb_copy_bits(skb, off, vaddr + frag_offset, size);
840 kunmap_atomic(vaddr);
841
842 if (ret) {
843 consume_skb(nskb);
844 goto drop;
845 }
846 len -= size;
847 off += size;
848 }
849 rcu_read_unlock();
850
851 consume_skb(skb);
852 skb = nskb;
853 return skb;
854 drop:
855 rcu_read_unlock();
856 kfree_skb(skb);
857 return NULL;
858 }
859
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-12-11 12:32 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-11 12:32 [isilence:zcrx/v9-wip 20/21] drivers/net/veth.c:831:24: error: implicit declaration of function 'io_iov_get_page' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.