Subject: Re: [PATCH net-next v2 07/15] eth: link netdev to page_pools in drivers

From: kernel test robot <[email-masked]>
Date: Wed, 22 Nov 2023 05:25:48 +0800

Hi Jakub,

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/Jakub-Kicinski/net-page_pool-split-the-page_pool_params-into-fast-and-slow/20231121-092240
base:   net-next/main
patch link:    https://lore.kernel.org/r/20231121000048.789613-8-kuba%40kernel.org
patch subject: [PATCH net-next v2 07/15] eth: link netdev to page_pools in drivers
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231122/[email-masked]/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231122/[email-masked]/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 <[email-masked]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email-masked]/

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/socionext/netsec.c:1305:11: error: initializing 'struct napi_struct *' with an expression of incompatible type 'struct napi_struct'; take the address with &
                   .napi = priv->napi,
                           ^~~~~~~~~~
                           &
   1 error generated.

vim +1305 drivers/net/ethernet/socionext/netsec.c

  1290	
  1291	static int netsec_setup_rx_dring(struct netsec_priv *priv)
  1292	{
  1293		struct netsec_desc_ring *dring = &priv->desc_ring[NETSEC_RING_RX];
  1294		struct bpf_prog *xdp_prog = READ_ONCE(priv->xdp_prog);
  1295		struct page_pool_params pp_params = {
  1296			.order = 0,
  1297			/* internal DMA mapping in page_pool */
  1298			.flags = PP_FLAG_DMA_MAP | PP_FLAG_DMA_SYNC_DEV,
  1299			.pool_size = DESC_NUM,
  1300			.nid = NUMA_NO_NODE,
  1301			.dev = priv->dev,
  1302			.dma_dir = xdp_prog ? DMA_BIDIRECTIONAL : DMA_FROM_DEVICE,
  1303			.offset = NETSEC_RXBUF_HEADROOM,
  1304			.max_len = NETSEC_RX_BUF_SIZE,
> 1305			.napi = priv->napi,
  1306			.netdev = priv->ndev,
  1307		};
  1308		int i, err;
  1309	
  1310		dring->page_pool = page_pool_create(&pp_params);
  1311		if (IS_ERR(dring->page_pool)) {
  1312			err = PTR_ERR(dring->page_pool);
  1313			dring->page_pool = NULL;
  1314			goto err_out;
  1315		}
  1316	
  1317		err = xdp_rxq_info_reg(&dring->xdp_rxq, priv->ndev, 0, priv->napi.napi_id);
  1318		if (err)
  1319			goto err_out;
  1320	
  1321		err = xdp_rxq_info_reg_mem_model(&dring->xdp_rxq, MEM_TYPE_PAGE_POOL,
  1322						 dring->page_pool);
  1323		if (err)
  1324			goto err_out;
  1325	
  1326		for (i = 0; i < DESC_NUM; i++) {
  1327			struct netsec_desc *desc = &dring->desc[i];
  1328			dma_addr_t dma_handle;
  1329			void *buf;
  1330			u16 len;
  1331	
  1332			buf = netsec_alloc_rx_data(priv, &dma_handle, &len);
  1333	
  1334			if (!buf) {
  1335				err = -ENOMEM;
  1336				goto err_out;
  1337			}
  1338			desc->dma_addr = dma_handle;
  1339			desc->addr = buf;
  1340			desc->len = len;
  1341		}
  1342	
  1343		netsec_rx_fill(priv, 0, DESC_NUM);
  1344	
  1345		return 0;
  1346	
  1347	err_out:
  1348		netsec_uninit_pkt_dring(priv, NETSEC_RING_RX);
  1349		return err;
  1350	}
  1351	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki