All of lore.kernel.org
 help / color / mirror / Atom feed
* [isilence:rw-dmabuf-v4 8/14] drivers/nvme/host/pci.c:2429:33: sparse: sparse: symbol 'nvme_dmabuf_importer_ops' was not declared. Should it be static?
@ 2026-07-29  8:22 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-29  8:22 UTC (permalink / raw)
  To: Pavel Begunkov; +Cc: oe-kbuild-all

tree:   https://github.com/isilence/linux rw-dmabuf-v4
head:   26dcd0ae5c87a3ada5710b14b6894ef343cec6fe
commit: 19e5c945ea8114320c10f7951d19197d48b59249 [8/14] nvme-pci: implement dma_token backed requests
config: arm-randconfig-r131-20260729 (https://download.01.org/0day-ci/archive/20260729/202607291615.ppk2esq4-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260729/202607291615.ppk2esq4-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/202607291615.ppk2esq4-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/nvme/host/pci.c:2429:33: sparse: sparse: symbol 'nvme_dmabuf_importer_ops' was not declared. Should it be static?
>> drivers/nvme/host/pci.c:2504:29: sparse: sparse: symbol 'nvme_dma_buf_io_ops' was not declared. Should it be static?

vim +/nvme_dmabuf_importer_ops +2429 drivers/nvme/host/pci.c

  2428	
> 2429	const struct dma_buf_attach_ops nvme_dmabuf_importer_ops = {
  2430		.invalidate_mappings	= nvme_dmabuf_invalidate_mappings,
  2431		.allow_peer2peer	= true,
  2432	};
  2433	
  2434	static struct dma_buf_io_map *nvme_dma_buf_io_map(struct dma_buf_io_ctx *ctx)
  2435	{
  2436		unsigned nr_entries = ctx->dmabuf->size / NVME_CTRL_PAGE_SIZE;
  2437		struct dma_buf_attachment *attach = ctx->dev_priv;
  2438		unsigned long tmp, i = 0;
  2439		struct nvme_dmabuf_map *map;
  2440		struct scatterlist *sg;
  2441		struct sg_table *sgt;
  2442		int ret;
  2443	
  2444		dma_resv_assert_held(ctx->dmabuf->resv);
  2445	
  2446		map = kmalloc_flex(*map, dma_list, nr_entries);
  2447		if (!map)
  2448			return ERR_PTR(-ENOMEM);
  2449	
  2450		sgt = dma_buf_map_attachment(attach, ctx->dir);
  2451		if (IS_ERR(sgt)) {
  2452			ret = PTR_ERR(sgt);
  2453			sgt = NULL;
  2454			goto err;
  2455		}
  2456	
  2457		for_each_sgtable_dma_sg(sgt, sg, tmp) {
  2458			dma_addr_t dma_addr = sg_dma_address(sg);
  2459			unsigned long sg_len = sg_dma_len(sg);
  2460	
  2461			if (sg_len % NVME_CTRL_PAGE_SIZE) {
  2462				ret = -EINVAL;
  2463				goto err;
  2464			}
  2465	
  2466			while (sg_len) {
  2467				map->dma_list[i++] = dma_addr;
  2468				dma_addr += NVME_CTRL_PAGE_SIZE;
  2469				sg_len -= NVME_CTRL_PAGE_SIZE;
  2470			}
  2471		}
  2472	
  2473		ret = dma_buf_io_init_map(ctx, &map->base);
  2474		if (ret)
  2475			goto err;
  2476		map->nr_entries = nr_entries;
  2477		map->sgt = sgt;
  2478		return &map->base;
  2479	err:
  2480		if (sgt)
  2481			dma_buf_unmap_attachment(attach, sgt, ctx->dir);
  2482		kfree(map);
  2483		return ERR_PTR(ret);
  2484	}
  2485	
  2486	static void nvme_dma_buf_io_unmap(struct dma_buf_io_ctx *ctx,
  2487					  struct dma_buf_io_map *map_base)
  2488	{
  2489		struct dma_buf_attachment *attach = ctx->dev_priv;
  2490		struct nvme_dmabuf_map *map = to_nvme_dmabuf_map(map_base);
  2491	
  2492		dma_resv_assert_held(ctx->dmabuf->resv);
  2493	
  2494		dma_buf_unmap_attachment(attach, map->sgt, ctx->dir);
  2495	}
  2496	
  2497	static void nvme_dma_buf_io_release(struct dma_buf_io_ctx *ctx)
  2498	{
  2499		struct dma_buf_attachment *attach = ctx->dev_priv;
  2500	
  2501		dma_buf_detach(ctx->dmabuf, attach);
  2502	}
  2503	
> 2504	const struct dma_buf_io_ops nvme_dma_buf_io_ops = {
  2505		.map		= nvme_dma_buf_io_map,
  2506		.unmap		= nvme_dma_buf_io_unmap,
  2507		.release	= nvme_dma_buf_io_release,
  2508	};
  2509	

--
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:[~2026-07-29  8:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29  8:22 [isilence:rw-dmabuf-v4 8/14] drivers/nvme/host/pci.c:2429:33: sparse: sparse: symbol 'nvme_dmabuf_importer_ops' was not declared. Should it be static? 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.