[Intel-gfx] [bug report] drm/i915: Load balancing across a virtual engine

Dan Carpenter dan.carpenter at oracle.com
Sat May 25 10:05:11 UTC 2019


Hello Chris Wilson,

The patch 6d06779e8672: "drm/i915: Load balancing across a virtual
engine" from May 21, 2019, leads to the following static checker
warning:

	drivers/gpu/drm/i915/gt/intel_lrc.c:3338 intel_execlists_create_virtual()
	warn: assigning (-2) to unsigned variable 've->base.instance'

drivers/gpu/drm/i915/gt/intel_lrc.c
  3315  struct intel_context *
  3316  intel_execlists_create_virtual(struct i915_gem_context *ctx,
  3317                                 struct intel_engine_cs **siblings,
  3318                                 unsigned int count)
  3319  {
  3320          struct virtual_engine *ve;
  3321          unsigned int n;
  3322          int err;
  3323  
  3324          if (count == 0)
  3325                  return ERR_PTR(-EINVAL);
  3326  
  3327          if (count == 1)
  3328                  return intel_context_create(ctx, siblings[0]);
  3329  
  3330          ve = kzalloc(struct_size(ve, siblings, count), GFP_KERNEL);
  3331          if (!ve)
  3332                  return ERR_PTR(-ENOMEM);
  3333  
  3334          ve->base.i915 = ctx->i915;
  3335          ve->base.id = -1;
  3336          ve->base.class = OTHER_CLASS;
  3337          ve->base.uabi_class = I915_ENGINE_CLASS_INVALID;
  3338          ve->base.instance = I915_ENGINE_CLASS_INVALID_VIRTUAL;
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ve->base.instance is u8 and I915_ENGINE_CLASS_INVALID_VIRTUAL is -2.

  3339          ve->base.flags = I915_ENGINE_IS_VIRTUAL;
  3340  
  3341          snprintf(ve->base.name, sizeof(ve->base.name), "virtual");
  3342  
  3343          err = i915_timeline_init(ctx->i915, &ve->base.timeline, NULL);
  3344          if (err)
  3345                  goto err_put;

regards,
dan carpenter


More information about the Intel-gfx mailing list