linux/drivers/gpu/drm/i915
Chris Wilson bcf50e2775 drm/i915: Handle pagefaults in execbuffer user relocations
Currently if we hit a pagefault when applying a user relocation for the
execbuffer, we bail and return EFAULT to the application. Instead, we
need to unwind, drop the dev->struct_mutex, copy all the relocation
entries to a vmalloc array (to avoid any potential circular deadlocks
when resolving the pagefault), retake the mutex and then apply the
relocations.  Afterwards, we need to again drop the lock and copy the
vmalloc array back to userspace.

v2: Incorporate feedback from Daniel Vetter.

Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2010-11-23 20:11:43 +00:00
..
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915: Tidy dvo_ch7017 and print out which chip we detect 2010-09-28 23:33:17 +01:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
i915_debugfs.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
i915_dma.c drm/i915: IS_IRONLAKE is synonymous with gen == 5 2010-10-21 19:08:39 +01:00
i915_drv.c drm/i915: Disable FBC on Ironlake to save 1W 2010-11-19 09:36:21 +00:00
i915_drv.h drm/i915: Retire any pending operations on the old scanout when switching 2010-11-13 09:49:11 +00:00
i915_gem_debug.c drm/i915/debug: Convert i915_verify_active() to scan all lists 2010-09-30 09:30:11 +01:00
i915_gem_evict.c drm/i915: Flush read-only buffers from the active list upon idle as well 2010-10-28 21:31:19 +01:00
i915_gem_tiling.c drm/i915: IS_IRONLAKE is synonymous with gen == 5 2010-10-21 19:08:39 +01:00
i915_gem.c drm/i915: Handle pagefaults in execbuffer user relocations 2010-11-23 20:11:43 +00:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h i915: enable AVI infoframe for intel_hdmi.c [v4] 2010-10-22 09:14:30 +01:00
i915_suspend.c drm/i915: Only save/restore cursor regs if !KMS 2010-11-21 09:56:00 +00:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
i915_trace.h drm/i915: add tracepoints for flip requests & completions 2010-07-02 14:04:14 +10:00
intel_acpi.c drm/i915: add _DSM support 2010-10-08 10:27:43 +01:00
intel_bios.c drm/i915: IS_IRONLAKE is synonymous with gen == 5 2010-10-21 19:08:39 +01:00
intel_bios.h drm/i915: Initialize panel timing registers if VBIOS did not 2010-10-19 09:17:24 +01:00
intel_crt.c drm/i915: Take advantage of auto-polling CRT hotplug detection on PCH hardware 2010-11-19 09:30:28 +00:00
intel_display.c drm/i915: Retire any pending operations on the old scanout when switching 2010-11-13 09:49:11 +00:00
intel_dp.c drm/i915: Fix typo from "Enable DisplayPort Audio" 2010-10-27 08:53:28 +01:00
intel_drv.h i915: reprogram power monitoring registers on resume 2010-11-03 21:44:47 +00:00
intel_dvo.c drm/i915/dvo: Fix panel and DDC i2c pins 2010-09-28 23:34:44 +01:00
intel_fb.c Merge remote branch 'airlied/drm-core-next' into tmp 2010-10-19 09:14:50 +01:00
intel_hdmi.c i915: enable AVI infoframe for intel_hdmi.c [v4] 2010-10-22 09:14:30 +01:00
intel_i2c.c drm/i915: Fix I2C adapter registration 2010-11-09 23:04:52 +00:00
intel_lvds.c drm/i915: Fix LVDS fixed-mode regression from 219adae1 2010-11-09 00:59:32 +00:00
intel_modes.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_opregion.c drm/i915: opregion_setup: iounmap correct address 2010-11-01 10:29:12 +00:00
intel_overlay.c i915: signedness bug in check_overlay_src() 2010-10-27 22:57:59 +01:00
intel_panel.c drm/i915: INTEL_INFO->gen supercedes i8xx, i9xx, i965g 2010-09-21 11:19:45 +01:00
intel_ringbuffer.c drm/i915/ringbuffer: Use the HEAD auto-reporting mechanism 2010-11-08 09:21:47 +00:00
intel_ringbuffer.h drm/i915: SNB BLT workaround 2010-11-02 10:48:48 +00:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_sdvo.c drm/i915/sdvo: Only enable HDMI encodings only if the commandset is supported 2010-11-22 13:27:29 +00:00
intel_tv.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-10-03 10:56:11 +01:00
Makefile drm/i915: add _DSM support 2010-10-08 10:27:43 +01:00