alistair23-linux/drivers/gpu/drm/i915
Daniel Vetter 96d79b5270 drm/i915: don't clobber userspace memory before commiting to the pread
The pagemap.h prefault helpers do the prefaulting by simply writing
some data into every page. Hence we should not prefault when we're not
yet commited to to actually writing data to userspace. The problem is
now that
- we can't prefault while holding dev->struct_mutex for we could
  deadlock with our own pagefault handler
- we need to grab dev->struct_mutex before copying to sync up with any
  outsanding gpu writes.

Therefore only prefault when we're dropping the lock the first time in
the pread slowpath - at that point we're committed to the write, don't
wait on the gpu anymore and hence won't return early (with e.g.
-EINTR).

Tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2012-03-27 13:28:32 +02:00
..
dvo.h
dvo_ch7xxx.c
dvo_ch7017.c
dvo_ivch.c
dvo_sil164.c
dvo_tfp410.c
i915_debugfs.c drm/i915: [dinq] shut up six instances of -Warray-bounds 2012-03-22 17:45:06 +01:00
i915_dma.c drm/i915: clear the entire gtt when using gem 2012-03-27 13:15:24 +02:00
i915_drv.c drm/i915: move NEEDS_FORCE_WAKE to i915_drv.c 2012-03-23 23:45:50 +01:00
i915_drv.h drm/i915: kill ranged cpu read domain support 2012-03-27 13:25:32 +02:00
i915_gem.c drm/i915: don't clobber userspace memory before commiting to the pread 2012-03-27 13:28:32 +02:00
i915_gem_debug.c
i915_gem_evict.c drm/i915: No need to search again after retiring requests 2012-02-27 17:37:13 +01:00
i915_gem_execbuffer.c drm/i915: Avoid using mappable space for relocation processing through the CPU 2012-03-27 13:16:17 +02:00
i915_gem_gtt.c drm/i915: clear the entire gtt when using gem 2012-03-27 13:15:24 +02:00
i915_gem_tiling.c drm/i915: swizzling support for snb/ivb 2012-02-08 23:16:24 +01:00
i915_ioc32.c
i915_irq.c drm/i915: bind objects to the global gtt only when needed 2012-03-20 21:52:01 +01:00
i915_reg.h drm/i915: re-order GT IIR bit definitions 2012-03-23 23:46:40 +01:00
i915_suspend.c drm/i915: Re-enable gen7 RC6 and GPU turbo after resume. 2012-01-24 13:25:10 -08:00
i915_trace.h
i915_trace_points.c
intel_acpi.c drm/i915: remove ACPI related DRM_ERRORs 2012-03-02 19:23:44 +01:00
intel_bios.c drm/i915: Check VBIOS value for determining LVDS dual channel mode, too 2012-03-22 23:23:45 +01:00
intel_bios.h drm/i915: VBT Parser cleanup for eDP block 2012-01-13 08:37:44 -08:00
intel_crt.c drm/i915: don't allow interlaced pipeconf on gen2 2012-02-10 17:28:45 +01:00
intel_display.c drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_dp.c drm/i915: use the new hdmi_force_audio enum more 2012-02-27 17:45:36 +01:00
intel_drv.h drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_dvo.c drm/i915: fixup interlaced vertical timings confusion, part 1 2012-02-10 17:24:06 +01:00
intel_fb.c drm: do not set fb_info->pixmap fields 2012-02-09 10:34:43 +00:00
intel_hdmi.c drm/i915: add a "force-dvi" HDMI audio mode 2012-02-14 10:03:18 +01:00
intel_i2c.c drm/i915: enable gmbus on gen2 2012-03-25 22:35:14 +02:00
intel_lvds.c drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin client 2012-02-27 11:12:38 +01:00
intel_modes.c Merge remote-tracking branch 'airlied/drm-next' into for-airlied 2012-02-23 14:56:11 +01:00
intel_opregion.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_overlay.c Revert "drivers/gpu/drm/i915/intel_overlay.c needs seq_file.h" 2012-02-16 10:31:23 +01:00
intel_panel.c i915: Add and use pr_fmt and pr_<level> 2012-03-18 21:50:21 +01:00
intel_ringbuffer.c drm/i915: Add wait_for in init_ring_common 2012-03-18 19:10:06 +01:00
intel_ringbuffer.h drm/i915: Record the tail at each request and use it to estimate the head 2012-02-15 14:26:03 +01:00
intel_sdvo.c drm/i915/sdov: switch IS_SDVOB to a flag 2012-03-24 15:55:53 +01:00
intel_sdvo_regs.h misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
intel_sprite.c Merge tag 'drm-intel-next-2012-02-07' of git://people.freedesktop.org/~danvet/drm-intel into drm-core-next 2012-02-14 14:16:00 +00:00
intel_tv.c drm/i915: reinstate GM45 TV detection fix 2012-03-27 13:12:28 +02:00
Makefile drm/i915: kill i915_mem.c 2012-01-17 20:01:01 +01:00