• Rob Clark's avatar
    drm: pass dev to drm_vm_{open,close}_locked() · b06d66be
    Rob Clark authored
    Previously these functions would assume that vma->vm_file was the
    drm_file.  Although if in some cases if the drm driver needs to use
    something else for the backing file (such as the tmpfs filp) then this
    assumption is no longer true.  But vma->vm_private_data is still the
    GEM object.
    
    With this change, now the drm_device comes from the GEM object rather
    than the drm_file so the driver is more free to play with vma->vm_file.
    
    The scenario where this comes up is for mmap'ing of cached dmabuf's
    for non-coherent systems, where the driver needs to use fault handling
    and PTE shootdown to simulate coherency.  We can't use the vma->vm_file
    of the dmabuf, which is using anon_inode's address_space.  The most
    straightforward thing to do is to use the GEM object's obj->filp for
    vma->vm_file in all cases, for which we need this patch.
    Signed-off-by: default avatarRob Clark <rob@ti.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    b06d66be
drm_vm.c 18.4 KB