Skip to content

Commit 4f0c7cf

Browse files
bwidawskdanvet
authored andcommitted
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 <[email protected]> [danvet: Added some bikeshed.] Signed-off-by: Daniel Vetter <[email protected]>
1 parent 0d38f00 commit 4f0c7cf

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

drivers/gpu/drm/i915/i915_gem.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,8 @@ __copy_to_user_swizzled(char __user *cpu_vaddr,
282282
}
283283

284284
static inline int
285-
__copy_from_user_swizzled(char __user *gpu_vaddr, int gpu_offset,
286-
const char *cpu_vaddr,
285+
__copy_from_user_swizzled(char *gpu_vaddr, int gpu_offset,
286+
const char __user *cpu_vaddr,
287287
int length)
288288
{
289289
int ret, cpu_offset = 0;
@@ -558,11 +558,14 @@ fast_user_write(struct io_mapping *mapping,
558558
char __user *user_data,
559559
int length)
560560
{
561-
char *vaddr_atomic;
561+
void __iomem *vaddr_atomic;
562+
void *vaddr;
562563
unsigned long unwritten;
563564

564565
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,
566569
user_data, length);
567570
io_mapping_unmap_atomic(vaddr_atomic);
568571
return unwritten;

0 commit comments

Comments
 (0)