#define DRIVER_MINOR           0
 #define DRIVER_PATCHLEVEL      1
 
-#define UDL_BO_CACHEABLE               (1 << 0)
-#define UDL_BO_WC              (1 << 1)
-
 struct udl_device;
 
 struct urb_node {
        struct page **pages;
        void *vmapping;
        struct sg_table *sg;
-       unsigned int flags;
 };
 
 #define to_udl_bo(x) container_of(x, struct udl_gem_object, base)
 
                return NULL;
        }
 
-       obj->flags = UDL_BO_CACHEABLE;
        return obj;
 }
 
        return 0;
 }
 
-static void update_vm_cache_attr(struct udl_gem_object *obj,
-                                struct vm_area_struct *vma)
-{
-       DRM_DEBUG_KMS("flags = 0x%x\n", obj->flags);
-
-       /* non-cacheable as default. */
-       if (obj->flags & UDL_BO_CACHEABLE) {
-               vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
-       } else if (obj->flags & UDL_BO_WC) {
-               vma->vm_page_prot =
-                       pgprot_writecombine(vm_get_page_prot(vma->vm_flags));
-       } else {
-               vma->vm_page_prot =
-                       pgprot_noncached(vm_get_page_prot(vma->vm_flags));
-       }
-}
-
 int udl_dumb_create(struct drm_file *file,
                    struct drm_device *dev,
                    struct drm_mode_create_dumb *args)
 
 int udl_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
 {
+       struct drm_gem_object *obj;
        int ret;
 
        ret = drm_gem_mmap(filp, vma);
        if (ret)
                return ret;
 
+       obj = vma->vm_private_data;
+
        vma->vm_flags &= ~VM_PFNMAP;
        vma->vm_flags |= VM_MIXEDMAP;
 
-       update_vm_cache_attr(to_udl_bo(vma->vm_private_data), vma);
+       vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
+       if (obj->import_attach)
+               vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
 
        return ret;
 }
                        return -ENOMEM;
                return 0;
        }
-               
+
        ret = udl_gem_get_pages(obj);
        if (ret)
                return ret;