All of lore.kernel.org
 help / color / mirror / Atom feed
* [isilence:zc/veth 1009/1018] include/net/data_pool.h:91:24: error: implicit declaration of function 'io_zc_rx_buf_dma'; did you mean 'io_zc_rx_put_buf'?
@ 2023-10-17 22:21 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-10-17 22:21 UTC (permalink / raw)
  To: David Wei; +Cc: oe-kbuild-all

tree:   https://github.com/isilence/linux zc/veth
head:   cff8a226d561bc0db814b65ca5d2c97894d4d1cd
commit: 9f51c6d3364cc1430726f2a50a81be50174722a6 [1009/1018] netdev/bnxt: add data pool and use it in BNXT driver
config: x86_64-randconfig-013-20231018 (https://download.01.org/0day-ci/archive/20231018/202310180641.WLtF9f46-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231018/202310180641.WLtF9f46-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/202310180641.WLtF9f46-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/net/data_pool.h:4,
                    from drivers/net/ethernet/broadcom/bnxt/bnxt.c:58:
   include/linux/io_uring.h:131:6: warning: no previous prototype for 'io_zc_rx_put_buf' [-Wmissing-prototypes]
     131 | void io_zc_rx_put_buf(struct io_zc_rx_ifq *ifq, struct io_zc_rx_buf *buf)
         |      ^~~~~~~~~~~~~~~~
   In file included from drivers/net/ethernet/broadcom/bnxt/bnxt.c:58:
   include/net/data_pool.h: In function 'data_pool_get_dma_addr':
>> include/net/data_pool.h:91:24: error: implicit declaration of function 'io_zc_rx_buf_dma'; did you mean 'io_zc_rx_put_buf'? [-Werror=implicit-function-declaration]
      91 |                 return io_zc_rx_buf_dma(buf);
         |                        ^~~~~~~~~~~~~~~~
         |                        io_zc_rx_put_buf
   drivers/net/ethernet/broadcom/bnxt/bnxt.c: In function 'bnxt_vf_target_id':
   drivers/net/ethernet/broadcom/bnxt/bnxt.c:5212:42: error: invalid use of undefined type 'struct bnxt_vf_info'
    5212 |         struct bnxt_vf_info *vf = &pf->vf[vf_idx];
         |                                          ^
   drivers/net/ethernet/broadcom/bnxt/bnxt.c:5214:18: error: invalid use of undefined type 'struct bnxt_vf_info'
    5214 |         return vf->fw_fid;
         |                  ^~
   drivers/net/ethernet/broadcom/bnxt/bnxt.c:5215:1: error: control reaches end of non-void function [-Werror=return-type]
    5215 | }
         | ^
   cc1: some warnings being treated as errors


vim +91 include/net/data_pool.h

     3	
   > 4	#include <linux/io_uring.h>
     5	#include <linux/io_uring_types.h>
     6	#include <linux/mm_types.h>
     7	#include <linux/netdevice.h>
     8	#include <net/netdev_rx_queue.h>
     9	
    10	static inline struct netdev_rx_queue *
    11	data_pool_get_rx_queue(struct net_device *dev, unsigned int q_idx)
    12	{
    13		if (q_idx >= dev->num_rx_queues)
    14			return NULL;
    15		return __netif_get_rx_queue(dev, q_idx);
    16	}
    17	
    18	static inline int data_pool_set_page_pool(struct net_device *dev,
    19						  unsigned int q_idx,
    20						  struct page_pool *pool)
    21	{
    22		struct netdev_rx_queue *rxq;
    23	
    24		rxq = data_pool_get_rx_queue(dev, q_idx);
    25		if (!rxq)
    26			return -EINVAL;
    27	
    28		rxq->page_pool = pool;
    29		return 0;
    30	}
    31	
    32	static inline int data_pool_set_zc_ifq(struct net_device *dev,
    33						unsigned int q_idx,
    34						struct io_zc_rx_ifq *ifq)
    35	{
    36		struct netdev_rx_queue *rxq;
    37	
    38		rxq = data_pool_get_rx_queue(dev, q_idx);
    39		if (!rxq)
    40			return -EINVAL;
    41	
    42		rxq->zc_ifq = ifq;
    43		return 0;
    44	}
    45	
    46	static inline struct page *data_pool_alloc_page(struct netdev_rx_queue *rxq)
    47	{
    48		if (rxq->zc_ifq) {
    49			struct io_zc_rx_buf *buf;
    50			buf = io_zc_rx_get_buf(rxq->zc_ifq);
    51			if (!buf)
    52				return NULL;
    53			return buf->page;
    54		} else {
    55			return page_pool_dev_alloc_pages(rxq->page_pool);
    56		}
    57	}
    58	
    59	static inline void data_pool_fragment_page(struct netdev_rx_queue *rxq,
    60						   struct page *page,
    61						   unsigned long bias)
    62	{
    63		if (rxq->zc_ifq) {
    64			struct io_zc_rx_buf *buf;
    65			buf = io_zc_rx_buf_from_page(rxq->zc_ifq, page);
    66			atomic_set(&buf->refcount, bias);
    67		} else {
    68			page_pool_fragment_page(page, bias);
    69		}
    70	}
    71	
    72	static inline void data_pool_put_page(struct netdev_rx_queue *rxq,
    73					      struct page *page)
    74	{
    75		if (rxq->zc_ifq) {
    76			struct io_zc_rx_buf *buf;
    77			buf = io_zc_rx_buf_from_page(rxq->zc_ifq, page);
    78			io_zc_rx_put_buf(rxq->zc_ifq, buf);
    79		} else {
    80			WARN_ON_ONCE(page->pp_magic != PP_SIGNATURE);
    81			page_pool_recycle_direct(rxq->page_pool, page);
    82		}
    83	}
    84	
    85	static inline dma_addr_t data_pool_get_dma_addr(struct netdev_rx_queue *rxq,
    86							struct page *page)
    87	{
    88		if (rxq->zc_ifq) {
    89			struct io_zc_rx_buf *buf;
    90			buf = io_zc_rx_buf_from_page(rxq->zc_ifq, page);
  > 91			return io_zc_rx_buf_dma(buf);
    92		} else {
    93			return page_pool_get_dma_addr(page);
    94		}
    95	}
    96	

-- 
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:[~2023-10-17 22:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-17 22:21 [isilence:zc/veth 1009/1018] include/net/data_pool.h:91:24: error: implicit declaration of function 'io_zc_rx_buf_dma'; did you mean 'io_zc_rx_put_buf'? 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.