linux-stable/drivers/gpu/drm/i915
Eric Anholt 3de09aa3b3 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>
2009-03-27 14:45:52 -07:00
..
dvo.h drm/i915: fix sparse warnings: move 'extern' decls to header file 2008-12-29 17:47:26 +10:00
dvo_ch7xxx.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_ch7017.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_ivch.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_sil164.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
dvo_tfp410.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
i915_dma.c drm/i915: Fix bad \n in MTRR failure notice. 2009-03-10 13:11:35 -07:00
i915_drv.c i915: suspend/resume interrupt state 2009-02-23 17:23:57 -08:00
i915_drv.h drm/i915: Don't restore palettes through VGA registers. 2009-03-10 13:11:12 -07:00
i915_gem.c drm/i915: Fix lock order reversal in GTT pwrite path. 2009-03-27 14:45:52 -07:00
i915_gem_debug.c drm: Add GEM ("graphics execution manager") to i915 driver. 2008-10-18 07:10:12 +10:00
i915_gem_proc.c drm/i915: Add /proc debugging entry for reading out the HWS. 2008-12-29 17:47:22 +10:00
i915_gem_tiling.c drm/i915: Change DCC tiling detection case to cover only mobile parts. 2009-03-27 14:45:10 -07:00
i915_ioc32.c drm: reorganise drm tree to be more future proof. 2008-07-14 10:45:01 +10:00
i915_irq.c drm/i915: Fix use-before-null-check in i915_irq_emit(). 2009-03-03 09:53:05 +10:00
i915_mem.c drm: move to kref per-master structures. 2008-12-29 17:47:22 +10:00
i915_opregion.c drm/i915: fix sparse warnings: make symbols static 2008-12-29 17:47:26 +10:00
i915_reg.h drm/i915: fix 945 fence register writes for fence 8 and above. 2009-03-11 11:02:06 -07:00
i915_suspend.c drm/i915: Don't restore palettes through VGA registers. 2009-03-10 13:11:12 -07:00
intel_bios.c drm/i915: handle bogus VBT panel timing 2009-02-25 14:10:42 +10:00
intel_bios.h DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
intel_crt.c drm/i915: fix sparse warnings: make symbols static 2008-12-29 17:47:26 +10:00
intel_display.c drm/i915: Read the right SDVO register when detecting SVDO/HDMI. 2009-03-27 14:45:14 -07:00
intel_drv.h drm/i915: sync SDVO code with stable userland modesetting driver 2009-02-08 21:38:14 +10:00
intel_dvo.c drm/i915: fix sparse warnings: move 'extern' decls to header file 2008-12-29 17:47:26 +10:00
intel_fb.c drm/i915: Unpin the fb on error during construction. 2009-02-20 12:21:11 +10:00
intel_hdmi.c drm/i915: Add support for integrated HDMI on G4X hardware. 2009-01-07 11:49:47 +10:00
intel_i2c.c i2c: Delete many unused adapter IDs 2009-01-26 21:19:52 +01:00
intel_lvds.c drm/i915: Don't add panel_fixed_mode to the probed modes list at LVDS init. 2009-02-20 12:21:12 +10:00
intel_modes.c DRM: i915: add mode setting support 2008-12-29 17:47:23 +10:00
intel_sdvo.c drm/i915: Storage class should be before const qualifier 2009-02-20 12:21:08 +10:00
intel_sdvo_regs.h drm/i915: sync SDVO code with stable userland modesetting driver 2009-02-08 21:38:14 +10:00
intel_tv.c drm/i915: Storage class should be before const qualifier 2009-02-20 12:21:08 +10:00
Makefile drm/i915: Add support for integrated HDMI on G4X hardware. 2009-01-07 11:49:47 +10:00