* [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.