drm/armada: Adding new typedef vm_fault_t
Use new return type vm_fault_t for fault handler in struct
vm_operations_struct. 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.
commit 1c8f422059
("mm: change return type to vm_fault_t")
Previously vm_insert_pfn() returns err which driver mapped into
VM_FAULT_* type. The new function vmf_insert_pfn() will replace this
inefficiency by returning VM_FAULT_* type.
Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com>
Reviewed-by: Matthew Wilcox <mawilcox@microsoft.com>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
This commit is contained in:

committed by
Russell King

parent
830aadceae
commit
7794ec7774
@@ -13,25 +13,14 @@
|
||||
#include <drm/armada_drm.h>
|
||||
#include "armada_ioctlP.h"
|
||||
|
||||
static int armada_gem_vm_fault(struct vm_fault *vmf)
|
||||
static vm_fault_t armada_gem_vm_fault(struct vm_fault *vmf)
|
||||
{
|
||||
struct drm_gem_object *gobj = vmf->vma->vm_private_data;
|
||||
struct armada_gem_object *obj = drm_to_armada_gem(gobj);
|
||||
unsigned long pfn = obj->phys_addr >> PAGE_SHIFT;
|
||||
int ret;
|
||||
|
||||
pfn += (vmf->address - vmf->vma->vm_start) >> PAGE_SHIFT;
|
||||
ret = vm_insert_pfn(vmf->vma, vmf->address, pfn);
|
||||
|
||||
switch (ret) {
|
||||
case 0:
|
||||
case -EBUSY:
|
||||
return VM_FAULT_NOPAGE;
|
||||
case -ENOMEM:
|
||||
return VM_FAULT_OOM;
|
||||
default:
|
||||
return VM_FAULT_SIGBUS;
|
||||
}
|
||||
return vmf_insert_pfn(vmf->vma, vmf->address, pfn);
|
||||
}
|
||||
|
||||
const struct vm_operations_struct armada_gem_vm_ops = {
|
||||
|
Reference in New Issue
Block a user