Hello Chris Wilson, The patch eb5c10cbbc2f: "drm/i915: Remove I915_USER_PRIORITY_SHIFT" from Jan 20, 2021, leads to the following Smatch static checker warning: drivers/gpu/drm/i915/gt/selftest_execlists.c:1544 live_busywait_preempt() error: 'ctx_hi' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:1549 live_busywait_preempt() error: 'ctx_lo' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:1740 live_preempt() error: 'ctx_hi' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:1745 live_preempt() error: 'ctx_lo' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:1844 live_late_preempt() error: 'ctx_lo' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:1871 live_late_preempt() error: 'ctx_hi' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:3382 live_preempt_timeout() error: 'ctx_hi' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c:3387 live_preempt_timeout() error: 'ctx_lo' dereferencing possible ERR_PTR() drivers/gpu/drm/i915/gt/selftest_execlists.c 1525 static int live_busywait_preempt(void *arg) 1526 { 1527 struct intel_gt *gt = arg; 1528 struct i915_gem_context *ctx_hi, *ctx_lo; 1529 struct intel_engine_cs *engine; 1530 struct drm_i915_gem_object *obj; 1531 struct i915_vma *vma; 1532 enum intel_engine_id id; 1533 int err = -ENOMEM; 1534 u32 *map; 1535 1536 /* 1537 * Verify that even without HAS_LOGICAL_RING_PREEMPTION, we can 1538 * preempt the busywaits used to synchronise between rings. 1539 */ 1540 1541 ctx_hi = kernel_context(gt->i915, NULL); 1542 if (!ctx_hi) ^^^^^^^ kernel_context() returns error pointers. 1543 return -ENOMEM; --> 1544 ctx_hi->sched.priority = I915_CONTEXT_MAX_USER_PRIORITY; 1545 1546 ctx_lo = kernel_context(gt->i915, NULL); 1547 if (!ctx_lo) ^^^^^^^ Same. It's so weird that I'm getting this warning and today I can't compile this file... Plus I'm supposed to be on an ARM config... Something is wrong with my setup. But the warnings looks correct. 1548 goto err_ctx_hi; 1549 ctx_lo->sched.priority = I915_CONTEXT_MIN_USER_PRIORITY; 1550 1551 obj = i915_gem_object_create_internal(gt->i915, PAGE_SIZE); 1552 if (IS_ERR(obj)) { 1553 err = PTR_ERR(obj); 1554 goto err_ctx_lo; 1555 } 1556 regards, dan carpenter