aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorBen Widawsky <ben@bwidawsk.net>2012-04-16 17:07:47 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-05-03 05:18:01 -0400
commit4f0c7cfbb4d25aad44137b6531365d29d3080349 (patch)
tree036ff522f3ac38827c116f406af9492dc13d2cd7 /drivers/gpu/drm/i915/i915_gem.c
parent0d38f00904bd74d791d60105dd4323c60f1767cb (diff)
drm/i915: [sparse] __iomem fixes for gem
As with one of the earlier patches in the series, we're forced to cast for copy_[to|from]_user. Again because of the nature of the GEN x86 exclusivity, this should be safe. Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com> [danvet: Added some bikeshed.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7bc4a40132ad..9e9ea759e496 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -282,8 +282,8 @@ __copy_to_user_swizzled(char __user *cpu_vaddr,
282} 282}
283 283
284static inline int 284static inline int
285__copy_from_user_swizzled(char __user *gpu_vaddr, int gpu_offset, 285__copy_from_user_swizzled(char *gpu_vaddr, int gpu_offset,
286 const char *cpu_vaddr, 286 const char __user *cpu_vaddr,
287 int length) 287 int length)
288{ 288{
289 int ret, cpu_offset = 0; 289 int ret, cpu_offset = 0;
@@ -558,11 +558,14 @@ fast_user_write(struct io_mapping *mapping,
558 char __user *user_data, 558 char __user *user_data,
559 int length) 559 int length)
560{ 560{
561 char *vaddr_atomic; 561 void __iomem *vaddr_atomic;
562 void *vaddr;
562 unsigned long unwritten; 563 unsigned long unwritten;
563 564
564 vaddr_atomic = io_mapping_map_atomic_wc(mapping, page_base); 565 vaddr_atomic = io_mapping_map_atomic_wc(mapping, page_base);
565 unwritten = __copy_from_user_inatomic_nocache(vaddr_atomic + page_offset, 566 /* We can use the cpu mem copy function because this is X86. */
567 vaddr = (void __force*)vaddr_atomic + page_offset;
568 unwritten = __copy_from_user_inatomic_nocache(vaddr,
566 user_data, length); 569 user_data, length);
567 io_mapping_unmap_atomic(vaddr_atomic); 570 io_mapping_unmap_atomic(vaddr_atomic);
568 return unwritten; 571 return unwritten;