diff options
author | Eric Anholt <eric@anholt.net> | 2009-03-09 09:42:23 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-03-27 14:45:52 -0700 |
commit | 3de09aa3b38910d366f4710ffdf430c9d387d1a3 (patch) | |
tree | 9434d262168de074b76cce179562c3bd3afcb449 /drivers/gpu/drm/i915/i915_drv.h | |
parent | 13520b051e8888dd3af9bda639d83e7df76613d1 (diff) |
drm/i915: Fix lock order reversal in GTT pwrite path.
Since the pagefault path determines that the lock order we use has to be
mmap_sem -> struct_mutex, we can't allow page faults to occur while the
struct_mutex is held. To fix this in pwrite, we first try optimistically to
see if we can copy from user without faulting. If it fails, fall back to
using get_user_pages to pin the user's memory, and map those pages
atomically when copying it to the GPU.
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
0 files changed, 0 insertions, 0 deletions