Message ID | 20190716213746.4670-1-robdclark@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/3] drm/gem: don't force writecombine mmap'ing | expand |
Rob Clark <robdclark@gmail.com> writes: > From: Rob Clark <robdclark@chromium.org> > > The driver should be in control of this. > > Signed-off-by: Rob Clark <robdclark@chromium.org> > --- > It is possible that this was masking bugs (ie. not setting appropriate > pgprot) in drivers. I don't have a particularly good idea for tracking > those down (since I don't have the hw for most drivers). Unless someone > has a better idea, maybe land this and let driver maintainers fix any > potential fallout in their drivers? > > This is necessary for the last patch to fix VGEM brokenness on arm. This will break at least v3d and panfrost, and it looks like cirrus as well, since you're now promoting the mapping to cached by default and drm_gem_shmem_helper now produces cached mappings. That's all I could find that would break, but don't trust me on that.
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index e6c12c6ec728..84689ccae885 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -1109,7 +1109,7 @@ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; vma->vm_private_data = obj; - vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); /* Take a ref for this mapping of the object, so that the fault