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-detac... base: https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next patch link: https://lore.kernel.org/r/20260219160822.1529-2-christian.koenig%40amd.com patch subject: [PATCH 1/8] dma-buf: protected fence ops by RCU v7 config: hexagon-randconfig-r121-20260221 (https://download.01.org/0day-ci/archive/20260221/202602212248.xPSr8tt8-lkp@i...) 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/202602212248.xPSr8tt8-lkp@i...)
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/202602212248.xPSr8tt8-lkp@intel.com/
sparse warnings: (new ones prefixed by >>) drivers/dma-buf/dma-fence-array.c: note: in included file (through include/linux/dma-fence-array.h):
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const * include/linux/dma-fence.h:732:27: sparse: sparse: incompatible types in comparison expression (different address spaces): include/linux/dma-fence.h:732:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:732:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const *
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const * -- drivers/dma-buf/dma-resv.c: note: in included file (through include/linux/dma-resv.h):
include/linux/dma-fence.h:721:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:721:27: sparse: struct dma_fence_ops const * include/linux/dma-fence.h:732:27: sparse: sparse: incompatible types in comparison expression (different address spaces): include/linux/dma-fence.h:732:27: sparse: struct dma_fence_ops const [noderef] __rcu * include/linux/dma-fence.h:732:27: sparse: struct dma_fence_ops const * -- drivers/dma-buf/dma-fence.c:1043:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char const [noderef] __rcu *timeline @@ got char * @@ drivers/dma-buf/dma-fence.c:1043:38: sparse: expected char const [noderef] __rcu *timeline drivers/dma-buf/dma-fence.c:1043:38: sparse: got char * drivers/dma-buf/dma-fence.c:1044:36: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char const [noderef] __rcu *driver @@ got char * @@ drivers/dma-buf/dma-fence.c:1044:36: sparse: expected char const [noderef] __rcu *driver drivers/dma-buf/dma-fence.c:1044: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
vim +721 include/linux/dma-fence.h
976b6d97c62347 Christian König 2022-01-19 712 976b6d97c62347 Christian König 2022-01-19 713 /** 976b6d97c62347 Christian König 2022-01-19 714 * dma_fence_is_array - check if a fence is from the array subclass 976b6d97c62347 Christian König 2022-01-19 715 * @fence: the fence to test 976b6d97c62347 Christian König 2022-01-19 716 * 976b6d97c62347 Christian König 2022-01-19 717 * Return true if it is a dma_fence_array and false otherwise. 976b6d97c62347 Christian König 2022-01-19 718 */ 976b6d97c62347 Christian König 2022-01-19 719 static inline bool dma_fence_is_array(struct dma_fence *fence) 976b6d97c62347 Christian König 2022-01-19 720 { 976b6d97c62347 Christian König 2022-01-19 @721 return fence->ops == &dma_fence_array_ops; 976b6d97c62347 Christian König 2022-01-19 722 } 976b6d97c62347 Christian König 2022-01-19 723