tree: git://anongit.freedesktop.org/drm/drm-intel drm-intel-next-queued head: 9f172f6fbd243759c808d97bd83c95e49325b2c9 commit: f4ecfbfc32ed0cb502374164638d14c4fb03e916 [2/3] drm/i915: Check whitelist registers across resets
smatch warnings: drivers/gpu/drm/i915/selftests/intel_workarounds.c:58 read_nonprivs() error: 'cs' dereferencing possible ERR_PTR() git remote add drm-drm-intel git://anongit.freedesktop.org/drm/drm-intel git remote update drm-drm-intel git checkout f4ecfbfc32ed0cb502374164638d14c4fb03e916 vim +/cs +58 drivers/gpu/drm/i915/selftests/intel_workarounds.c f4ecfbfc Chris Wilson 2018-04-14 10 f4ecfbfc Chris Wilson 2018-04-14 11 static struct drm_i915_gem_object * f4ecfbfc Chris Wilson 2018-04-14 12 read_nonprivs(struct i915_gem_context *ctx, struct intel_engine_cs *engine) f4ecfbfc Chris Wilson 2018-04-14 13 { f4ecfbfc Chris Wilson 2018-04-14 14 struct drm_i915_gem_object *result; f4ecfbfc Chris Wilson 2018-04-14 15 struct i915_request *rq; f4ecfbfc Chris Wilson 2018-04-14 16 struct i915_vma *vma; f4ecfbfc Chris Wilson 2018-04-14 17 const u32 base = engine->mmio_base; f4ecfbfc Chris Wilson 2018-04-14 18 u32 srm, *cs; f4ecfbfc Chris Wilson 2018-04-14 19 int err; f4ecfbfc Chris Wilson 2018-04-14 20 int i; f4ecfbfc Chris Wilson 2018-04-14 21 f4ecfbfc Chris Wilson 2018-04-14 22 result = i915_gem_object_create_internal(engine->i915, PAGE_SIZE); f4ecfbfc Chris Wilson 2018-04-14 23 if (IS_ERR(result)) f4ecfbfc Chris Wilson 2018-04-14 24 return result; f4ecfbfc Chris Wilson 2018-04-14 25 f4ecfbfc Chris Wilson 2018-04-14 26 i915_gem_object_set_cache_level(result, I915_CACHE_LLC); f4ecfbfc Chris Wilson 2018-04-14 27 f4ecfbfc Chris Wilson 2018-04-14 28 cs = i915_gem_object_pin_map(result, I915_MAP_WB); f4ecfbfc Chris Wilson 2018-04-14 29 if (IS_ERR(cs)) { f4ecfbfc Chris Wilson 2018-04-14 30 err = PTR_ERR(cs); f4ecfbfc Chris Wilson 2018-04-14 31 goto err_obj; f4ecfbfc Chris Wilson 2018-04-14 32 } f4ecfbfc Chris Wilson 2018-04-14 33 memset(cs, 0xc5, PAGE_SIZE); f4ecfbfc Chris Wilson 2018-04-14 34 i915_gem_object_unpin_map(result); f4ecfbfc Chris Wilson 2018-04-14 35 f4ecfbfc Chris Wilson 2018-04-14 36 vma = i915_vma_instance(result, &engine->i915->ggtt.base, NULL); f4ecfbfc Chris Wilson 2018-04-14 37 if (IS_ERR(vma)) { f4ecfbfc Chris Wilson 2018-04-14 38 err = PTR_ERR(vma); f4ecfbfc Chris Wilson 2018-04-14 39 goto err_obj; f4ecfbfc Chris Wilson 2018-04-14 40 } f4ecfbfc Chris Wilson 2018-04-14 41 f4ecfbfc Chris Wilson 2018-04-14 42 err = i915_vma_pin(vma, 0, 0, PIN_GLOBAL); f4ecfbfc Chris Wilson 2018-04-14 43 if (err) f4ecfbfc Chris Wilson 2018-04-14 44 goto err_obj; f4ecfbfc Chris Wilson 2018-04-14 45 f4ecfbfc Chris Wilson 2018-04-14 46 rq = i915_request_alloc(engine, ctx); f4ecfbfc Chris Wilson 2018-04-14 47 if (IS_ERR(rq)) { f4ecfbfc Chris Wilson 2018-04-14 48 err = PTR_ERR(rq); f4ecfbfc Chris Wilson 2018-04-14 49 goto err_pin; f4ecfbfc Chris Wilson 2018-04-14 50 } f4ecfbfc Chris Wilson 2018-04-14 51 f4ecfbfc Chris Wilson 2018-04-14 52 srm = MI_STORE_REGISTER_MEM | MI_SRM_LRM_GLOBAL_GTT; f4ecfbfc Chris Wilson 2018-04-14 53 if (INTEL_GEN(ctx->i915) >= 8) f4ecfbfc Chris Wilson 2018-04-14 54 srm++; f4ecfbfc Chris Wilson 2018-04-14 55 f4ecfbfc Chris Wilson 2018-04-14 56 cs = intel_ring_begin(rq, 4 * RING_MAX_NONPRIV_SLOTS); f4ecfbfc Chris Wilson 2018-04-14 57 for (i = 0; i < RING_MAX_NONPRIV_SLOTS; i++) { f4ecfbfc Chris Wilson 2018-04-14 @58 *cs++ = srm; f4ecfbfc Chris Wilson 2018-04-14 59 *cs++ = i915_mmio_reg_offset(RING_FORCE_TO_NONPRIV(base, i)); f4ecfbfc Chris Wilson 2018-04-14 60 *cs++ = i915_ggtt_offset(vma) + sizeof(u32) * i; f4ecfbfc Chris Wilson 2018-04-14 61 *cs++ = 0; f4ecfbfc Chris Wilson 2018-04-14 62 } f4ecfbfc Chris Wilson 2018-04-14 63 intel_ring_advance(rq, cs); f4ecfbfc Chris Wilson 2018-04-14 64 f4ecfbfc Chris Wilson 2018-04-14 65 i915_vma_move_to_active(vma, rq, EXEC_OBJECT_WRITE); f4ecfbfc Chris Wilson 2018-04-14 66 reservation_object_lock(vma->resv, NULL); f4ecfbfc Chris Wilson 2018-04-14 67 reservation_object_add_excl_fence(vma->resv, &rq->fence); f4ecfbfc Chris Wilson 2018-04-14 68 reservation_object_unlock(vma->resv); f4ecfbfc Chris Wilson 2018-04-14 69 f4ecfbfc Chris Wilson 2018-04-14 70 i915_gem_object_get(result); f4ecfbfc Chris Wilson 2018-04-14 71 i915_gem_object_set_active_reference(result); f4ecfbfc Chris Wilson 2018-04-14 72 f4ecfbfc Chris Wilson 2018-04-14 73 __i915_request_add(rq, true); f4ecfbfc Chris Wilson 2018-04-14 74 i915_vma_unpin(vma); f4ecfbfc Chris Wilson 2018-04-14 75 f4ecfbfc Chris Wilson 2018-04-14 76 return result; f4ecfbfc Chris Wilson 2018-04-14 77 f4ecfbfc Chris Wilson 2018-04-14 78 err_pin: f4ecfbfc Chris Wilson 2018-04-14 79 i915_vma_unpin(vma); f4ecfbfc Chris Wilson 2018-04-14 80 err_obj: f4ecfbfc Chris Wilson 2018-04-14 81 i915_gem_object_put(result); f4ecfbfc Chris Wilson 2018-04-14 82 return ERR_PTR(err); f4ecfbfc Chris Wilson 2018-04-14 83 } f4ecfbfc Chris Wilson 2018-04-14 84 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ kbuild mailing list kbuild@lists.01.org https://lists.01.org/mailman/listinfo/kbuild