3de09aa3b3
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> |
||
---|---|---|
.. | ||
dvo_ch7xxx.c | ||
dvo_ch7017.c | ||
dvo_ivch.c | ||
dvo_sil164.c | ||
dvo_tfp410.c | ||
dvo.h | ||
i915_dma.c | ||
i915_drv.c | ||
i915_drv.h | ||
i915_gem_debug.c | ||
i915_gem_proc.c | ||
i915_gem_tiling.c | ||
i915_gem.c | ||
i915_ioc32.c | ||
i915_irq.c | ||
i915_mem.c | ||
i915_opregion.c | ||
i915_reg.h | ||
i915_suspend.c | ||
intel_bios.c | ||
intel_bios.h | ||
intel_crt.c | ||
intel_display.c | ||
intel_drv.h | ||
intel_dvo.c | ||
intel_fb.c | ||
intel_hdmi.c | ||
intel_i2c.c | ||
intel_lvds.c | ||
intel_modes.c | ||
intel_sdvo_regs.h | ||
intel_sdvo.c | ||
intel_tv.c | ||
Makefile |