From: Dan Carpenter Date: Fri, 2 Oct 2015 15:14:22 +0000 (+0300) Subject: drm/i915: unlock on error in i915_ppgtt_info() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=068127601eefa0565f4b2f4d82750cad9e37000c;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git drm/i915: unlock on error in i915_ppgtt_info() We need to call intel_runtime_pm_put() and mutex_unlock() before returning. Fixes: 7cb5dff8d59d ('drm/i915: fix task reference leak in i915_debugfs.c') Signed-off-by: Dan Carpenter Acked-by: Geliang Tang Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 77ee8c5062b9..7e65015ecbee 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2298,18 +2298,21 @@ static int i915_ppgtt_info(struct seq_file *m, void *data) struct task_struct *task; task = get_pid_task(file->pid, PIDTYPE_PID); - if (!task) - return -ESRCH; + if (!task) { + ret = -ESRCH; + goto out_put; + } seq_printf(m, "\nproc: %s\n", task->comm); put_task_struct(task); idr_for_each(&file_priv->context_idr, per_file_ctx, (void *)(unsigned long)m); } +out_put: intel_runtime_pm_put(dev_priv); mutex_unlock(&dev->struct_mutex); - return 0; + return ret; } static int count_irq_waiters(struct drm_i915_private *i915)