diff options
author | Souptick Joarder <jrdr.linux@gmail.com> | 2018-04-17 09:47:55 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2018-05-17 11:44:48 -0400 |
commit | cc7add70cad12054e096b034578827d7065f64bb (patch) | |
tree | a49faeb1ad03bec03f23ec6b634e4b9eee8bf8a5 | |
parent | f40e1590c5270e5559fb95a5a0a7c1f5266a522d (diff) |
drm/tegra: Adding new typedef vm_fault_t
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>
-rw-r--r-- | drivers/gpu/drm/tegra/gem.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index 8b0b4ff64bb4..1c4011774c3f 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c | |||
@@ -422,14 +422,13 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm, | |||
422 | return 0; | 422 | return 0; |
423 | } | 423 | } |
424 | 424 | ||
425 | static int tegra_bo_fault(struct vm_fault *vmf) | 425 | static vm_fault_t tegra_bo_fault(struct vm_fault *vmf) |
426 | { | 426 | { |
427 | struct vm_area_struct *vma = vmf->vma; | 427 | struct vm_area_struct *vma = vmf->vma; |
428 | struct drm_gem_object *gem = vma->vm_private_data; | 428 | struct drm_gem_object *gem = vma->vm_private_data; |
429 | struct tegra_bo *bo = to_tegra_bo(gem); | 429 | struct tegra_bo *bo = to_tegra_bo(gem); |
430 | struct page *page; | 430 | struct page *page; |
431 | pgoff_t offset; | 431 | pgoff_t offset; |
432 | int err; | ||
433 | 432 | ||
434 | if (!bo->pages) | 433 | if (!bo->pages) |
435 | return VM_FAULT_SIGBUS; | 434 | return VM_FAULT_SIGBUS; |
@@ -437,20 +436,7 @@ static int tegra_bo_fault(struct vm_fault *vmf) | |||
437 | offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; | 436 | offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; |
438 | page = bo->pages[offset]; | 437 | page = bo->pages[offset]; |
439 | 438 | ||
440 | err = vm_insert_page(vma, vmf->address, page); | 439 | return vmf_insert_page(vma, vmf->address, page); |
441 | switch (err) { | ||
442 | case -EAGAIN: | ||
443 | case 0: | ||
444 | case -ERESTARTSYS: | ||
445 | case -EINTR: | ||
446 | case -EBUSY: | ||
447 | return VM_FAULT_NOPAGE; | ||
448 | |||
449 | case -ENOMEM: | ||
450 | return VM_FAULT_OOM; | ||
451 | } | ||
452 | |||
453 | return VM_FAULT_SIGBUS; | ||
454 | } | 440 | } |
455 | 441 | ||
456 | const struct vm_operations_struct tegra_bo_vm_ops = { | 442 | const struct vm_operations_struct tegra_bo_vm_ops = { |