Hi Chris, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on drm-tip/drm-tip] [cannot apply to drm-intel/for-linux-next v5.10 next-20201214] [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/Chris-Wilson/drm-i915-Use-cmpxchg64-for-32b-compatilibity/20201214-181222 base: git://anongit.freedesktop.org/drm/drm-tip drm-tip config: i386-randconfig-s002-20201214 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-184-g1b896707-dirty # https://github.com/0day-ci/linux/commit/44f806e9c54f1723714820d49dda7beddc38aa1e git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Chris-Wilson/drm-i915-Use-cmpxchg64-for-32b-compatilibity/20201214-181222 git checkout 44f806e9c54f1723714820d49dda7beddc38aa1e # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' 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/gt/intel_execlists_submission.c:1401:37: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct intel_timeline *tl @@ got struct intel_timeline [noderef] __rcu * @@ drivers/gpu/drm/i915/gt/intel_execlists_submission.c:1401:37: sparse: expected struct intel_timeline *tl drivers/gpu/drm/i915/gt/intel_execlists_submission.c:1401:37: sparse: got struct intel_timeline [noderef] __rcu * vim +1401 drivers/gpu/drm/i915/gt/intel_execlists_submission.c 1396 1397 static void 1398 resubmit_virtual_request(struct i915_request *rq, struct virtual_engine *ve) 1399 { 1400 struct intel_engine_cs *engine = rq->engine; > 1401 struct intel_timeline *tl = READ_ONCE(rq->timeline); 1402 struct i915_request *pos = rq; 1403 1404 spin_lock_irq(&engine->active.lock); 1405 1406 /* Rewind back to the start of this virtual engine queue */ 1407 list_for_each_entry_continue_reverse(rq, &tl->requests, link) { 1408 if (i915_request_completed(rq)) 1409 break; 1410 1411 pos = rq; 1412 } 1413 1414 /* Resubmit the queue in execution order */ 1415 spin_lock(&ve->base.active.lock); 1416 list_for_each_entry_from(pos, &tl->requests, link) { 1417 if (pos->engine != engine) 1418 break; 1419 1420 __resubmit_virtual_request(pos, engine, ve); 1421 } 1422 spin_unlock(&ve->base.active.lock); 1423 1424 spin_unlock_irq(&engine->active.lock); 1425 } 1426 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org