|
@@ -1013,17 +1013,20 @@ gtt_user_read(struct io_mapping *mapping,
|
|
|
loff_t base, int offset,
|
|
|
char __user *user_data, int length)
|
|
|
{
|
|
|
- void *vaddr;
|
|
|
+ void __iomem *vaddr;
|
|
|
unsigned long unwritten;
|
|
|
|
|
|
/* We can use the cpu mem copy function because this is X86. */
|
|
|
- vaddr = (void __force *)io_mapping_map_atomic_wc(mapping, base);
|
|
|
- unwritten = __copy_to_user_inatomic(user_data, vaddr + offset, length);
|
|
|
+ vaddr = io_mapping_map_atomic_wc(mapping, base);
|
|
|
+ unwritten = __copy_to_user_inatomic(user_data,
|
|
|
+ (void __force *)vaddr + offset,
|
|
|
+ length);
|
|
|
io_mapping_unmap_atomic(vaddr);
|
|
|
if (unwritten) {
|
|
|
- vaddr = (void __force *)
|
|
|
- io_mapping_map_wc(mapping, base, PAGE_SIZE);
|
|
|
- unwritten = copy_to_user(user_data, vaddr + offset, length);
|
|
|
+ vaddr = io_mapping_map_wc(mapping, base, PAGE_SIZE);
|
|
|
+ unwritten = copy_to_user(user_data,
|
|
|
+ (void __force *)vaddr + offset,
|
|
|
+ length);
|
|
|
io_mapping_unmap(vaddr);
|
|
|
}
|
|
|
return unwritten;
|
|
@@ -1189,18 +1192,18 @@ ggtt_write(struct io_mapping *mapping,
|
|
|
loff_t base, int offset,
|
|
|
char __user *user_data, int length)
|
|
|
{
|
|
|
- void *vaddr;
|
|
|
+ void __iomem *vaddr;
|
|
|
unsigned long unwritten;
|
|
|
|
|
|
/* We can use the cpu mem copy function because this is X86. */
|
|
|
- vaddr = (void __force *)io_mapping_map_atomic_wc(mapping, base);
|
|
|
- unwritten = __copy_from_user_inatomic_nocache(vaddr + offset,
|
|
|
+ vaddr = io_mapping_map_atomic_wc(mapping, base);
|
|
|
+ unwritten = __copy_from_user_inatomic_nocache((void __force *)vaddr + offset,
|
|
|
user_data, length);
|
|
|
io_mapping_unmap_atomic(vaddr);
|
|
|
if (unwritten) {
|
|
|
- vaddr = (void __force *)
|
|
|
- io_mapping_map_wc(mapping, base, PAGE_SIZE);
|
|
|
- unwritten = copy_from_user(vaddr + offset, user_data, length);
|
|
|
+ vaddr = io_mapping_map_wc(mapping, base, PAGE_SIZE);
|
|
|
+ unwritten = copy_from_user((void __force *)vaddr + offset,
|
|
|
+ user_data, length);
|
|
|
io_mapping_unmap(vaddr);
|
|
|
}
|
|
|
|