projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7c4a7d6
)
drm/i915: fix task reference leak in i915_debugfs.c
author
Geliang Tang
<geliangtang@163.com>
Fri, 25 Sep 2015 10:58:11 +0000
(
03:58
-0700)
committer
Daniel Vetter
<daniel.vetter@ffwll.ch>
Fri, 25 Sep 2015 12:26:37 +0000
(14:26 +0200)
Leak a task reference in i915_ppgtt_info(), add put_task_struct()
to fix it.
Introduced by
commit
1c60fef535d143860d5bf6593e24ab6417f5227c
Author: Ben Widawsky <ben@bwidawsk.net>
Date: Fri Dec 6 14:11:30 2013 -0800
drm/i915: Dump all ppgtt
Signed-off-by: Geliang Tang <geliangtang@163.com>
[danvet: Add note provided by Jani about which commit introduced this
issue.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_debugfs.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/i915/i915_debugfs.c
b/drivers/gpu/drm/i915/i915_debugfs.c
index 5615d3d3ab59b90383216066a542ae6389dba5e2..879771766973271cb77f6ad7fee6263a065066a3 100644
(file)
--- a/
drivers/gpu/drm/i915/i915_debugfs.c
+++ b/
drivers/gpu/drm/i915/i915_debugfs.c
@@
-2288,9
+2288,13
@@
static int i915_ppgtt_info(struct seq_file *m, void *data)
list_for_each_entry_reverse(file, &dev->filelist, lhead) {
struct drm_i915_file_private *file_priv = file->driver_priv;
+ struct task_struct *task;
- seq_printf(m, "\nproc: %s\n",
- get_pid_task(file->pid, PIDTYPE_PID)->comm);
+ task = get_pid_task(file->pid, PIDTYPE_PID);
+ if (!task)
+ return -ESRCH;
+ 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);
}