Message ID | 20200407134256.9129-2-m.szyprowski@samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | ExynosDRM - rework GEM internals | expand |
20. 4. 7. 오후 10:42에 Marek Szyprowski 이(가) 쓴 글: > The ExynosDRM page fault handler is never used, drm_gem_mmap() > always calls exynos_drm_gem_mmap() function, which perform > complete mapping for the given virtual address-space area. Right, never used. Picked it up. Thanks, Inki Dae > > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 - > drivers/gpu/drm/exynos/exynos_drm_gem.c | 20 -------------------- > drivers/gpu/drm/exynos/exynos_drm_gem.h | 3 --- > 3 files changed, 24 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c > index 57defeb44522..dbd80f1e4c78 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c > @@ -76,7 +76,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) > } > > static const struct vm_operations_struct exynos_drm_gem_vm_ops = { > - .fault = exynos_drm_gem_fault, > .open = drm_gem_vm_open, > .close = drm_gem_vm_close, > }; > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c > index d734d9d51762..40514d3dcf60 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c > @@ -381,26 +381,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, > return 0; > } > > -vm_fault_t exynos_drm_gem_fault(struct vm_fault *vmf) > -{ > - struct vm_area_struct *vma = vmf->vma; > - struct drm_gem_object *obj = vma->vm_private_data; > - struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj); > - unsigned long pfn; > - pgoff_t page_offset; > - > - page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; > - > - if (page_offset >= (exynos_gem->size >> PAGE_SHIFT)) { > - DRM_ERROR("invalid page offset\n"); > - return VM_FAULT_SIGBUS; > - } > - > - pfn = page_to_pfn(exynos_gem->pages[page_offset]); > - return vmf_insert_mixed(vma, vmf->address, > - __pfn_to_pfn_t(pfn, PFN_DEV)); > -} > - > static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj, > struct vm_area_struct *vma) > { > diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h > index 42ec67bc262d..f00044c0b688 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h > +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h > @@ -101,9 +101,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, > struct drm_device *dev, > struct drm_mode_create_dumb *args); > > -/* page fault handler and mmap fault address(virtual) to physical memory. */ > -vm_fault_t exynos_drm_gem_fault(struct vm_fault *vmf); > - > /* set vm_flags and we can change the vm attribute to other one at here. */ > int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma); > >
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c index 57defeb44522..dbd80f1e4c78 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c @@ -76,7 +76,6 @@ static void exynos_drm_postclose(struct drm_device *dev, struct drm_file *file) } static const struct vm_operations_struct exynos_drm_gem_vm_ops = { - .fault = exynos_drm_gem_fault, .open = drm_gem_vm_open, .close = drm_gem_vm_close, }; diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c index d734d9d51762..40514d3dcf60 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -381,26 +381,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, return 0; } -vm_fault_t exynos_drm_gem_fault(struct vm_fault *vmf) -{ - struct vm_area_struct *vma = vmf->vma; - struct drm_gem_object *obj = vma->vm_private_data; - struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj); - unsigned long pfn; - pgoff_t page_offset; - - page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; - - if (page_offset >= (exynos_gem->size >> PAGE_SHIFT)) { - DRM_ERROR("invalid page offset\n"); - return VM_FAULT_SIGBUS; - } - - pfn = page_to_pfn(exynos_gem->pages[page_offset]); - return vmf_insert_mixed(vma, vmf->address, - __pfn_to_pfn_t(pfn, PFN_DEV)); -} - static int exynos_drm_gem_mmap_obj(struct drm_gem_object *obj, struct vm_area_struct *vma) { diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.h b/drivers/gpu/drm/exynos/exynos_drm_gem.h index 42ec67bc262d..f00044c0b688 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.h +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.h @@ -101,9 +101,6 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, struct drm_device *dev, struct drm_mode_create_dumb *args); -/* page fault handler and mmap fault address(virtual) to physical memory. */ -vm_fault_t exynos_drm_gem_fault(struct vm_fault *vmf); - /* set vm_flags and we can change the vm attribute to other one at here. */ int exynos_drm_gem_mmap(struct file *filp, struct vm_area_struct *vma);
The ExynosDRM page fault handler is never used, drm_gem_mmap() always calls exynos_drm_gem_mmap() function, which perform complete mapping for the given virtual address-space area. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/gpu/drm/exynos/exynos_drm_drv.c | 1 - drivers/gpu/drm/exynos/exynos_drm_gem.c | 20 -------------------- drivers/gpu/drm/exynos/exynos_drm_gem.h | 3 --- 3 files changed, 24 deletions(-)