All of lore.kernel.org
 help / color / mirror / Atom feed
* [isilence:rw-dmabuf-v5 1/16] drivers/dma-buf/dma-buf-io.c:169 dma_buf_io_create_map() warn: inconsistent returns 'dmabuf->resv'.
@ 2026-08-02 22:26 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-08-02 22:26 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Pavel Begunkov <asml.silence@gmail.com>

tree:   https://github.com/isilence/linux rw-dmabuf-v5
head:   71c75106fd3c8852b3856e472b586db82e480f7b
commit: ff5dccf71e8c03d62797352c4bb5fbb7c6c759c8 [1/16] dma-buf: introduce initial file I/O infrastructure
:::::: branch date: 31 hours ago
:::::: commit date: 31 hours ago
config: i386-randconfig-141-20260803 (https://download.01.org/0day-ci/archive/20260803/202608030631.jIkiKCzz-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
smatch: v0.5.0-9187-g5189e3fb

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202608030631.jIkiKCzz-lkp@intel.com/

smatch warnings:
drivers/dma-buf/dma-buf-io.c:169 dma_buf_io_create_map() warn: inconsistent returns 'dmabuf->resv'.

vim +169 drivers/dma-buf/dma-buf-io.c

ff5dccf71e8c03 Pavel Begunkov 2026-04-19  118  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  119  struct dma_buf_io_map *dma_buf_io_create_map(struct dma_buf_io_ctx *ctx)
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  120  {
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  121  	struct dma_buf *dmabuf = ctx->dmabuf;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  122  	struct dma_buf_io_map *map;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  123  	long ret;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  124  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  125  retry:
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  126  	/*
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  127  	 * ->dmabuf_map() will be calling dma_buf_map_attachment(), for which
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  128  	 * we'll need to wait for fences. Do a bit nicer and try to wait
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  129  	 * without the resv lock first.
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  130  	 */
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  131  	ret = dma_resv_wait_timeout(dmabuf->resv, DMA_RESV_USAGE_KERNEL,
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  132  				    true, MAX_SCHEDULE_TIMEOUT);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  133  	if (!ret)
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  134  		ret = -EAGAIN;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  135  	if (ret < 0)
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  136  		return ERR_PTR(ret);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  137  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  138  	ret = dma_resv_lock_interruptible(dmabuf->resv, NULL);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  139  	if (ret)
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  140  		return ERR_PTR(ret);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  141  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  142  	map = dma_buf_io_get_map(ctx);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  143  	if (map) {
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  144  		ret = 0;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  145  		goto out;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  146  	}
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  147  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  148  	if (dma_resv_wait_timeout(dmabuf->resv, DMA_RESV_USAGE_KERNEL,
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  149  				  true, 0) < 0) {
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  150  		dma_resv_unlock(dmabuf->resv);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  151  		goto retry;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  152  	}
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  153  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  154  	map = ctx->dev_ops->map(ctx);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  155  	if (IS_ERR(map)) {
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  156  		ret = PTR_ERR(map);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  157  		goto out;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  158  	}
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  159  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  160  	if (WARN_ON_ONCE(!map->seg_shift))
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  161  		return ERR_PTR(-EFAULT);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  162  
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  163  	percpu_ref_get(&map->refs);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  164  	rcu_assign_pointer(ctx->map, map);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  165  out:
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  166  	dma_resv_unlock(dmabuf->resv);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  167  	if (ret < 0)
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  168  		return ERR_PTR(ret);
ff5dccf71e8c03 Pavel Begunkov 2026-04-19 @169  	return map;
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  170  }
ff5dccf71e8c03 Pavel Begunkov 2026-04-19  171  

--
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-08-02 22:27 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-02 22:26 [isilence:rw-dmabuf-v5 1/16] drivers/dma-buf/dma-buf-io.c:169 dma_buf_io_create_map() warn: inconsistent returns 'dmabuf->resv' 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.