{
        unsigned int needs_clflush;
        struct page *page;
-       typeof(v) *map;
+       u32 *map;
        int err;
 
        err = i915_gem_obj_prepare_shmem_write(obj, &needs_clflush);
 {
        unsigned int needs_clflush;
        struct page *page;
-       typeof(v) map;
+       u32 *map;
        int err;
 
        err = i915_gem_obj_prepare_shmem_read(obj, &needs_clflush);
                   u32 v)
 {
        struct i915_vma *vma;
-       typeof(v) *map;
+       u32 __iomem *map;
        int err;
 
        err = i915_gem_object_set_to_gtt_domain(obj, true);
        if (IS_ERR(map))
                return PTR_ERR(map);
 
-       map[offset / sizeof(*map)] = v;
+       iowrite32(v, &map[offset / sizeof(*map)]);
        i915_vma_unpin_iomap(vma);
 
        return 0;
                   u32 *v)
 {
        struct i915_vma *vma;
-       typeof(v) map;
+       u32 __iomem *map;
        int err;
 
        err = i915_gem_object_set_to_gtt_domain(obj, false);
        if (IS_ERR(map))
                return PTR_ERR(map);
 
-       *v = map[offset / sizeof(*map)];
+       *v = ioread32(&map[offset / sizeof(*map)]);
        i915_vma_unpin_iomap(vma);
 
        return 0;
                  unsigned long offset,
                  u32 v)
 {
-       typeof(v) *map;
+       u32 *map;
        int err;
 
        err = i915_gem_object_set_to_wc_domain(obj, true);
                  unsigned long offset,
                  u32 *v)
 {
-       typeof(v) map;
+       u32 *map;
        int err;
 
        err = i915_gem_object_set_to_wc_domain(obj, false);