drm/i915: Register engines early to avoid type confusion
[platform/kernel/linux-rpi.git] / drivers / gpu / drm / i915 / i915_gem.c
index 1f65bb3..a8551ce 100644 (file)
@@ -1199,6 +1199,13 @@ int i915_gem_init(struct drm_i915_private *dev_priv)
                        goto err_unlock;
        }
 
+       /*
+        * Register engines early to ensure the engine list is in its final
+        * rb-tree form, lowering the amount of code that has to deal with
+        * the intermediate llist state.
+        */
+       intel_engines_driver_register(dev_priv);
+
        return 0;
 
        /*
@@ -1246,8 +1253,6 @@ err_unlock:
 void i915_gem_driver_register(struct drm_i915_private *i915)
 {
        i915_gem_driver_register__shrinker(i915);
-
-       intel_engines_driver_register(i915);
 }
 
 void i915_gem_driver_unregister(struct drm_i915_private *i915)