|
@@ -61,13 +61,13 @@ static void vgem_gem_free_object(struct drm_gem_object *obj)
|
|
kfree(vgem_obj);
|
|
kfree(vgem_obj);
|
|
}
|
|
}
|
|
|
|
|
|
-static int vgem_gem_fault(struct vm_fault *vmf)
|
|
|
|
|
|
+static vm_fault_t vgem_gem_fault(struct vm_fault *vmf)
|
|
{
|
|
{
|
|
struct vm_area_struct *vma = vmf->vma;
|
|
struct vm_area_struct *vma = vmf->vma;
|
|
struct drm_vgem_gem_object *obj = vma->vm_private_data;
|
|
struct drm_vgem_gem_object *obj = vma->vm_private_data;
|
|
/* We don't use vmf->pgoff since that has the fake offset */
|
|
/* We don't use vmf->pgoff since that has the fake offset */
|
|
unsigned long vaddr = vmf->address;
|
|
unsigned long vaddr = vmf->address;
|
|
- int ret;
|
|
|
|
|
|
+ vm_fault_t ret = VM_FAULT_SIGBUS;
|
|
loff_t num_pages;
|
|
loff_t num_pages;
|
|
pgoff_t page_offset;
|
|
pgoff_t page_offset;
|
|
page_offset = (vaddr - vma->vm_start) >> PAGE_SHIFT;
|
|
page_offset = (vaddr - vma->vm_start) >> PAGE_SHIFT;
|
|
@@ -77,7 +77,6 @@ static int vgem_gem_fault(struct vm_fault *vmf)
|
|
if (page_offset > num_pages)
|
|
if (page_offset > num_pages)
|
|
return VM_FAULT_SIGBUS;
|
|
return VM_FAULT_SIGBUS;
|
|
|
|
|
|
- ret = -ENOENT;
|
|
|
|
mutex_lock(&obj->pages_lock);
|
|
mutex_lock(&obj->pages_lock);
|
|
if (obj->pages) {
|
|
if (obj->pages) {
|
|
get_page(obj->pages[page_offset]);
|
|
get_page(obj->pages[page_offset]);
|