drm/i915: Do not dereference pointers from ring buffer in evict event
authorSteven Rostedt <rostedt@goodmis.org>
Tue, 18 Mar 2014 15:27:37 +0000 (11:27 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 May 2014 20:20:32 +0000 (13:20 -0700)
commit70d1e53b3b1f06cdf282e6753ffb11a95d5a6854
tree3b768af621bc50f074bd1a139cf05907f203be79
parent6dee738af60144c03cbfd0699bbb99f4ff4e021a
drm/i915: Do not dereference pointers from ring buffer in evict event

commit 9297ebf29ad9118edd6c0fedc84f03e35028827d upstream.

The TP_printk() should never dereference any pointers, because the ring
buffer can be read at some unknown time in the future. If a device no
longer exists, it can cause a kernel oops. This also makes this
event useless when saving the ring buffer in userspaces tools such as
perf and trace-cmd.

The i915_gem_evict_vm dereferences the vm pointer which may also not
exist when the ring buffer is read sometime in the future.

Link: http://lkml.kernel.org/r/1395095198-20034-3-git-send-email-artagnon@gmail.com
Reported-by: Ramkumar Ramachandra <artagnon@gmail.com>
Fixes: bcccff847d1f "drm/i915: trace vm eviction instead of everything"
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
[danvet: Try to make it actually compile]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/i915_trace.h