Hi Jason, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm-intel/for-linux-next] [also build test WARNING on drm-tip/drm-tip drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next linus/master v5.13-rc6 next-20210616] [cannot apply to drm/drm-next] [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] url: https://github.com/0day-ci/linux/commits/Jason-Ekstrand/dma-fence-i915-Stop-allowing-SLAB_TYPESAFE_BY_RCU-for-dma_fence/20210616-154432 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-randconfig-s001-20210615 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://github.com/0day-ci/linux/commit/d718e3dba487fc068d793f6220ac2508c98d0eef git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Jason-Ekstrand/dma-fence-i915-Stop-allowing-SLAB_TYPESAFE_BY_RCU-for-dma_fence/20210616-154432 git checkout d718e3dba487fc068d793f6220ac2508c98d0eef # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: note: in included file: >> include/drm/drm_syncobj.h:110:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct dma_fence *fence @@ got struct dma_fence [noderef] __rcu *fence @@ include/drm/drm_syncobj.h:110:50: sparse: expected struct dma_fence *fence include/drm/drm_syncobj.h:110:50: sparse: got struct dma_fence [noderef] __rcu *fence >> include/drm/drm_syncobj.h:110:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct dma_fence *fence @@ got struct dma_fence [noderef] __rcu *fence @@ include/drm/drm_syncobj.h:110:50: sparse: expected struct dma_fence *fence include/drm/drm_syncobj.h:110:50: sparse: got struct dma_fence [noderef] __rcu *fence vim +110 include/drm/drm_syncobj.h 90 91 /** 92 * drm_syncobj_fence_get - get a reference to a fence in a sync object 93 * @syncobj: sync object. 94 * 95 * This acquires additional reference to &drm_syncobj.fence contained in @obj, 96 * if not NULL. It is illegal to call this without already holding a reference. 97 * No locks required. 98 * 99 * Returns: 100 * Either the fence of @obj or NULL if there's none. 101 */ 102 static inline struct dma_fence * 103 drm_syncobj_fence_get(struct drm_syncobj *syncobj) 104 { 105 struct dma_fence *fence; 106 107 rcu_read_lock(); 108 fence = rcu_dereference(syncobj->fence); 109 if (fence) > 110 fence = dma_fence_get_rcu(syncobj->fence); 111 rcu_read_unlock(); 112 113 return fence; 114 } 115 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org