diff options
| author | Chris Wilson <[email protected]> | 2020-05-21 15:06:17 +0100 |
|---|---|---|
| committer | Chris Wilson <[email protected]> | 2020-05-21 17:18:26 +0100 |
| commit | 32a4605b38c30689a6a18f3f4c7d3133ac9d3277 (patch) | |
| tree | d4de2e8657921e02265c721d2d815aa868fee3a8 /tools/perf/scripts/python/export-to-postgresql.py | |
| parent | 0eb670aac27b1d615004c29efec595616e3e091a (diff) | |
drm/i915: Avoid using rq->engine after free during i915_fence_release
In order to be valid to dereference during the i915_fence_release, after
retiring the fence and releasing its refererences, we assume that
rq->engine can only be a real engine (that stay intact until the device
is shutdown after all fences have been flushed). However, due to a quirk
of preempt-to-busy, we may retire a request that still belongs to a
virtual engine and so eventually free it with rq->engine being invalid.
To avoid dereferencing that invalid engine, we look at the
execution_mask which if it indicates it may be executed on more than one
engine, we know it originated on a virtual engine and may still be on
one.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1906
Fixes: 43acd6516ca9 ("drm/i915: Keep a per-engine request pool")
Signed-off-by: Chris Wilson <[email protected]>
Cc: Tvrtko Ursulin <[email protected]>
Reviewed-by: Tvrtko Ursulin <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions