[Intel-gfx] [PATCH] drm/i915: Add fallback inside memcpy_from_wc functions

kernel test robot lkp at intel.com
Fri Feb 4 01:30:13 UTC 2022

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

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@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
        # 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 at intel.com>

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

   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		}
   195		/* Fallback */
   196		memcpy_fromio(dst, src, len);
   197	}

0-DAY CI Kernel Test Service, Intel Corporation

More information about the Intel-gfx mailing list