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 /drivers/gpu/drm/tegra/gem.c | |
| 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>
Diffstat (limited to 'drivers/gpu/drm/tegra/gem.c')
| -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 = { |
