drm/i915/guc: Fix a memory leak where guc->execbuf_client is not freed
authorAlex Dai <yu.dai@intel.com>
Wed, 13 Jan 2016 19:01:50 +0000 (11:01 -0800)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 18 Jan 2016 09:58:49 +0000 (09:58 +0000)
commita9d8adad731171559b24eb27c9db4a64238b7ef0
treef8b6f3486617e3bb3189ff699b6f1b1a2843fa75
parent82352e908acd36d7244c75a008c9f27a2ced44d5
drm/i915/guc: Fix a memory leak where guc->execbuf_client is not freed

During driver unloading, the guc_client created for command submission
needs to be released to avoid memory leak.

The struct_mutex needs to be held before tearing down GuC.

v1: Move i915_guc_submission_disable out of i915_guc_submission_fini and
    take struct_mutex lock before release GuC client. (Dave Gordon)
v2: Add the locking for failure case in guc_fw_fetch. (Dave Gordon)
    Add i915_guc_submission_fini for failure case in intel_guc_ucode_load.

Signed-off-by: Alex Dai <yu.dai@intel.com>
Reviewed-by: Dave Gordon <david.s.gordon@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1452711710-4505-1-git-send-email-yu.dai@intel.com
drivers/gpu/drm/i915/intel_guc_loader.c