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 
next-20210616]
[cannot apply to tegra-drm/drm/tegra/for-next drm/drm-next v5.13-rc6]
[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/drm-i915-gem-ioctl-clean-ups-v6/20210616-151016
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/18d43c75e6489f1e8485d8f4e809d83bbc179326
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Jason-Ekstrand/drm-i915-gem-ioctl-clean-ups-v6/20210616-151016
        git checkout 18d43c75e6489f1e8485d8f4e809d83bbc179326
        # 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 <l...@intel.com>


sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/i915/gem/i915_gem_context.c:1412:34: sparse: sparse: 
>> incorrect type in argument 1 (different address spaces) @@     expected 
>> struct i915_address_space *vm @@     got struct i915_address_space [noderef] 
>> __rcu *vm @@
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1412:34: sparse:     expected 
struct i915_address_space *vm
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1412:34: sparse:     got struct 
i915_address_space [noderef] __rcu *vm
   drivers/gpu/drm/i915/gem/i915_gem_context.c: note: in included file:
>> drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse: sparse: 
>> incorrect type in assignment (different address spaces) @@     expected 
>> struct i915_address_space [noderef] __rcu *vm @@     got struct 
>> i915_address_space * @@
   drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse:     
expected struct i915_address_space [noderef] __rcu *vm
   drivers/gpu/drm/i915/gem/selftests/mock_context.c:43:25: sparse:     got 
struct i915_address_space *
>> drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse: sparse: 
>> incorrect type in argument 1 (different address spaces) @@     expected 
>> struct i915_address_space *vm @@     got struct i915_address_space [noderef] 
>> __rcu *vm @@
   drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse:     
expected struct i915_address_space *vm
   drivers/gpu/drm/i915/gem/selftests/mock_context.c:60:34: sparse:     got 
struct i915_address_space [noderef] __rcu *vm

vim +1412 drivers/gpu/drm/i915/gem/i915_gem_context.c

  1324  
  1325  static struct i915_gem_context *
  1326  i915_gem_create_context(struct drm_i915_private *i915,
  1327                          const struct i915_gem_proto_context *pc)
  1328  {
  1329          struct i915_gem_context *ctx;
  1330          struct i915_address_space *vm = NULL;
  1331          struct i915_gem_engines *e;
  1332          int err;
  1333          int i;
  1334  
  1335          ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
  1336          if (!ctx)
  1337                  return ERR_PTR(-ENOMEM);
  1338  
  1339          kref_init(&ctx->ref);
  1340          ctx->i915 = i915;
  1341          ctx->sched = pc->sched;
  1342          mutex_init(&ctx->mutex);
  1343          INIT_LIST_HEAD(&ctx->link);
  1344  
  1345          spin_lock_init(&ctx->stale.lock);
  1346          INIT_LIST_HEAD(&ctx->stale.engines);
  1347  
  1348          if (pc->vm) {
  1349                  vm = i915_vm_get(pc->vm);
  1350          } else if (HAS_FULL_PPGTT(i915)) {
  1351                  struct i915_ppgtt *ppgtt;
  1352  
  1353                  ppgtt = i915_ppgtt_create(&i915->gt);
  1354                  if (IS_ERR(ppgtt)) {
  1355                          drm_dbg(&i915->drm, "PPGTT setup failed 
(%ld)\n",
  1356                                  PTR_ERR(ppgtt));
  1357                          err = PTR_ERR(ppgtt);
  1358                          goto err_ctx;
  1359                  }
  1360                  vm = &ppgtt->vm;
  1361          }
  1362          if (vm) {
  1363                  RCU_INIT_POINTER(ctx->vm, i915_vm_open(vm));
  1364  
  1365                  /* i915_vm_open() takes a reference */
  1366                  i915_vm_put(vm);
  1367          }
  1368  
  1369          mutex_init(&ctx->engines_mutex);
  1370          if (pc->num_user_engines >= 0) {
  1371                  i915_gem_context_set_user_engines(ctx);
  1372                  e = user_engines(ctx, pc->num_user_engines, 
pc->user_engines);
  1373          } else {
  1374                  i915_gem_context_clear_user_engines(ctx);
  1375                  e = default_engines(ctx, pc->legacy_rcs_sseu);
  1376          }
  1377          if (IS_ERR(e)) {
  1378                  err = PTR_ERR(e);
  1379                  goto err_vm;
  1380          }
  1381          RCU_INIT_POINTER(ctx->engines, e);
  1382  
  1383          INIT_RADIX_TREE(&ctx->handles_vma, GFP_KERNEL);
  1384          mutex_init(&ctx->lut_mutex);
  1385  
  1386          /* NB: Mark all slices as needing a remap so that when the 
context first
  1387           * loads it will restore whatever remap state already exists. 
If there
  1388           * is no remap info, it will be a NOP. */
  1389          ctx->remap_slice = ALL_L3_SLICES(i915);
  1390  
  1391          ctx->user_flags = pc->user_flags;
  1392  
  1393          for (i = 0; i < ARRAY_SIZE(ctx->hang_timestamp); i++)
  1394                  ctx->hang_timestamp[i] = jiffies - 
CONTEXT_FAST_HANG_JIFFIES;
  1395  
  1396          if (pc->single_timeline) {
  1397                  err = drm_syncobj_create(&ctx->syncobj,
  1398                                           DRM_SYNCOBJ_CREATE_SIGNALED,
  1399                                           NULL);
  1400                  if (err)
  1401                          goto err_engines;
  1402          }
  1403  
  1404          trace_i915_context_create(ctx);
  1405  
  1406          return ctx;
  1407  
  1408  err_engines:
  1409          free_engines(e);
  1410  err_vm:
  1411          if (ctx->vm)
> 1412                  i915_vm_close(ctx->vm);
  1413  err_ctx:
  1414          kfree(ctx);
  1415          return ERR_PTR(err);
  1416  }
  1417  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to