Dynamic context pinning for LRCs introduced a leak in legacy mode.
Reinstate context unreference in i915_gem_free_request for legacy contexts.
Leak reported by i-g-t/drv_module_reload fixed by this patch.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86507
Signed-off-by: Thomas Daniel <thomas.daniel@intel.com>
Reviewed-by: John Harrison<John.C.Harrison@Intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
        list_del(&request->list);
        i915_gem_request_remove_from_client(request);
 
-       if (i915.enable_execlists && ctx) {
-               struct intel_engine_cs *ring = request->ring;
+       if (ctx) {
+               if (i915.enable_execlists) {
+                       struct intel_engine_cs *ring = request->ring;
 
-               if (ctx != ring->default_context)
-                       intel_lr_context_unpin(ring, ctx);
+                       if (ctx != ring->default_context)
+                               intel_lr_context_unpin(ring, ctx);
+               }
                i915_gem_context_unreference(ctx);
        }
        kfree(request);