Hi Christian,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-misc/drm-misc-next]
[cannot apply to drm-i915/for-linux-next drm-i915/for-linux-next-fixes 
drm-xe/drm-xe-next linus/master v6.19 next-20260220]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Christian-K-nig/dma-buf-detach-fence-ops-on-signal-v2/20260220-010804
base:   https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next
patch link:    
https://lore.kernel.org/r/20260219160822.1529-3-christian.koenig%40amd.com
patch subject: [PATCH 2/8] dma-buf: detach fence ops on signal v2
config: hexagon-randconfig-r121-20260221 
(https://download.01.org/0day-ci/archive/20260221/[email protected]/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 
e86750b29fa0ff207cd43213d66dabe565417638)
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260221/[email protected]/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 protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
   drivers/dma-buf/dma-fence.c:1051:38: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected char const [noderef] 
__rcu *timeline @@     got char * @@
   drivers/dma-buf/dma-fence.c:1051:38: sparse:     expected char const 
[noderef] __rcu *timeline
   drivers/dma-buf/dma-fence.c:1051:38: sparse:     got char *
   drivers/dma-buf/dma-fence.c:1052:36: sparse: sparse: incorrect type in 
initializer (different address spaces) @@     expected char const [noderef] 
__rcu *driver @@     got char * @@
   drivers/dma-buf/dma-fence.c:1052:36: sparse:     expected char const 
[noderef] __rcu *driver
   drivers/dma-buf/dma-fence.c:1052:36: sparse:     got char *
   drivers/dma-buf/dma-fence.c: note: in included file (through 
include/trace/trace_events.h, include/trace/define_trace.h, 
include/trace/events/dma_fence.h):
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
   include/trace/events/dma_fence.h:17:1: sparse: sparse: dereference of 
noderef expression
>> drivers/dma-buf/dma-fence.c:379:19: sparse: sparse: dereference of noderef 
>> expression
   drivers/dma-buf/dma-fence.c:379:43: sparse: sparse: dereference of noderef 
expression

vim +379 drivers/dma-buf/dma-fence.c

   345  
   346  
   347  /**
   348   * dma_fence_signal_timestamp_locked - signal completion of a fence
   349   * @fence: the fence to signal
   350   * @timestamp: fence signal timestamp in kernel's CLOCK_MONOTONIC time 
domain
   351   *
   352   * Signal completion for software callbacks on a fence, this will 
unblock
   353   * dma_fence_wait() calls and run all the callbacks added with
   354   * dma_fence_add_callback(). Can be called multiple times, but since a 
fence
   355   * can only go from the unsignaled to the signaled state and not back, 
it will
   356   * only be effective the first time. Set the timestamp provided as the 
fence
   357   * signal timestamp.
   358   *
   359   * Unlike dma_fence_signal_timestamp(), this function must be called 
with
   360   * &dma_fence.lock held.
   361   */
   362  void dma_fence_signal_timestamp_locked(struct dma_fence *fence,
   363                                        ktime_t timestamp)
   364  {
   365          struct dma_fence_cb *cur, *tmp;
   366          struct list_head cb_list;
   367  
   368          lockdep_assert_held(fence->lock);
   369  
   370          if (unlikely(test_and_set_bit(DMA_FENCE_FLAG_SIGNALED_BIT,
   371                                        &fence->flags)))
   372                  return;
   373  
   374          /*
   375           * When neither a release nor a wait operation is specified set 
the ops
   376           * pointer to NULL to allow the fence structure to become 
independent
   377           * from who originally issued it.
   378           */
 > 379          if (!fence->ops->release && !fence->ops->wait)
   380                  RCU_INIT_POINTER(fence->ops, NULL);
   381  
   382          /* Stash the cb_list before replacing it with the timestamp */
   383          list_replace(&fence->cb_list, &cb_list);
   384  
   385          fence->timestamp = timestamp;
   386          set_bit(DMA_FENCE_FLAG_TIMESTAMP_BIT, &fence->flags);
   387          trace_dma_fence_signaled(fence);
   388  
   389          list_for_each_entry_safe(cur, tmp, &cb_list, node) {
   390                  INIT_LIST_HEAD(&cur->node);
   391                  cur->func(fence, cur);
   392          }
   393  }
   394  EXPORT_SYMBOL(dma_fence_signal_timestamp_locked);
   395  

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

Reply via email to