Hi Balasubramani, 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 drm/drm-next tegra-drm/drm/tegra/for-next v5.17-rc2 next-20220203] [cannot apply to airlied/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/Balasubramani-Vivekanandan/drm-i915-Add-fallback-inside-memcpy_from_wc-functions/20220204-002704 base: git://anongit.freedesktop.org/drm-intel for-linux-next config: i386-randconfig-s001 (https://download.01.org/0day-ci/archive/20220204/202202040609.oSW2rFIL-lkp@xxxxxxxxx/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/66de634b392157effc065df388510df67de59f2b git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Balasubramani-Vivekanandan/drm-i915-Add-fallback-inside-memcpy_from_wc-functions/20220204-002704 git checkout 66de634b392157effc065df388510df67de59f2b # save the config file to linux build tree mkdir build_dir make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/i915/ net/ipv6/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> drivers/gpu/drm/i915/i915_memcpy.c:189:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *src @@ got void const [noderef] __iomem *src @@ drivers/gpu/drm/i915/i915_memcpy.c:189:42: sparse: expected void const *src drivers/gpu/drm/i915/i915_memcpy.c:189:42: sparse: got void const [noderef] __iomem *src >> drivers/gpu/drm/i915/i915_memcpy.c:191:45: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *[assigned] src @@ got void const [noderef] __iomem *src @@ drivers/gpu/drm/i915/i915_memcpy.c:191:45: sparse: expected void const *[assigned] src drivers/gpu/drm/i915/i915_memcpy.c:191:45: sparse: got void const [noderef] __iomem *src drivers/gpu/drm/i915/i915_memcpy.c:187:6: sparse: sparse: symbol 'i915_io_memcpy_from_wc' redeclared with different type (incompatible argument 2 (different address spaces)): >> drivers/gpu/drm/i915/i915_memcpy.c:187:6: sparse: void extern [addressable] [toplevel] i915_io_memcpy_from_wc( ... ) drivers/gpu/drm/i915/i915_memcpy.c: note: in included file: drivers/gpu/drm/i915/i915_memcpy.h:17:6: sparse: note: previously declared as: >> drivers/gpu/drm/i915/i915_memcpy.h:17:6: sparse: void extern [addressable] [toplevel] i915_io_memcpy_from_wc( ... ) -- >> drivers/gpu/drm/i915/gem/i915_gem_object.c:449:37: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *src @@ got void [noderef] __iomem *[assigned] src_ptr @@ drivers/gpu/drm/i915/gem/i915_gem_object.c:449:37: sparse: expected void const *src drivers/gpu/drm/i915/gem/i915_gem_object.c:449:37: sparse: got void [noderef] __iomem *[assigned] src_ptr vim +189 drivers/gpu/drm/i915/i915_memcpy.c 175 176 /** 177 * i915_io_memcpy_from_wc: perform an accelerated *aligned* read from WC 178 * @dst: destination pointer 179 * @src: source pointer 180 * @len: how many bytes to copy 181 * 182 * To be used when the when copying from io memory. 183 * 184 * memcpy_fromio() is used as fallback otherewise no difference to 185 * i915_memcpy_from_wc() 186 */ > 187 void i915_io_memcpy_from_wc(void *dst, const void __iomem *src, unsigned long len) 188 { > 189 if (i915_can_memcpy_from_wc(dst, src, len)) { 190 if (likely(len)) > 191 __memcpy_ntdqa(dst, src, len >> 4); 192 return; 193 } 194 195 /* Fallback */ 196 memcpy_fromio(dst, src, len); 197 } 198 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx