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 -> 1c8f422059
("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>
This commit is contained in:
parent
f40e1590c5
commit
cc7add70ca
|
@ -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 = {
|
||||
|
|
Loading…
Reference in New Issue