]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/tegra: Adding new typedef vm_fault_t
authorSouptick Joarder <jrdr.linux@gmail.com>
Tue, 17 Apr 2018 13:47:55 +0000 (19:17 +0530)
committerThierry Reding <treding@nvidia.com>
Thu, 17 May 2018 15:44:48 +0000 (17:44 +0200)
Use new return type vm_fault_t for fault handler. For now, this is just
documenting that the function returns a VM_FAULT value rather than an
errno. Once all instances are converted, vm_fault_t will become a
distinct type.

Reference id -> 1c8f422059ae ("mm: change return type to vm_fault_t")

Previously vm_insert_page() returns err which driver mapped into
VM_FAULT_* type. The new function vmf_insert_page() will replace this
inefficiency by returning VM_FAULT_* type.

Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/gpu/drm/tegra/gem.c

index 8b0b4ff64bb41a812468af38518a266e4ac945db..1c4011774c3f84273ff5236134ba00ec1e1fd8a7 100644 (file)
@@ -422,14 +422,13 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm,
        return 0;
 }
 
-static int tegra_bo_fault(struct vm_fault *vmf)
+static vm_fault_t tegra_bo_fault(struct vm_fault *vmf)
 {
        struct vm_area_struct *vma = vmf->vma;
        struct drm_gem_object *gem = vma->vm_private_data;
        struct tegra_bo *bo = to_tegra_bo(gem);
        struct page *page;
        pgoff_t offset;
-       int err;
 
        if (!bo->pages)
                return VM_FAULT_SIGBUS;
@@ -437,20 +436,7 @@ static int tegra_bo_fault(struct vm_fault *vmf)
        offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
        page = bo->pages[offset];
 
-       err = vm_insert_page(vma, vmf->address, page);
-       switch (err) {
-       case -EAGAIN:
-       case 0:
-       case -ERESTARTSYS:
-       case -EINTR:
-       case -EBUSY:
-               return VM_FAULT_NOPAGE;
-
-       case -ENOMEM:
-               return VM_FAULT_OOM;
-       }
-
-       return VM_FAULT_SIGBUS;
+       return vmf_insert_page(vma, vmf->address, page);
 }
 
 const struct vm_operations_struct tegra_bo_vm_ops = {