Message ID | 1370312422-25027-3-git-send-email-laurent.pinchart+renesas@ideasonboard.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Mon, Jun 3, 2013 at 10:20 PM, Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> wrote: > The dma-buf mmap code was copied from the GEM mmap implementation. > Replace it with the new drm_gem_mmap_obj() function. > > Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Rob Clark <robdclark@gmail.com> > --- > drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 32 +++---------------------------- > 1 file changed, 3 insertions(+), 29 deletions(-) > > diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c > index be7cd97..3256693 100644 > --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c > +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c > @@ -136,10 +136,6 @@ static void omap_gem_dmabuf_kunmap(struct dma_buf *buffer, > kunmap(pages[page_num]); > } > > -/* > - * TODO maybe we can split up drm_gem_mmap to avoid duplicating > - * some here.. or at least have a drm_dmabuf_mmap helper. > - */ > static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, > struct vm_area_struct *vma) > { > @@ -149,31 +145,9 @@ static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, > if (WARN_ON(!obj->filp)) > return -EINVAL; > > - /* Check for valid size. */ > - if (omap_gem_mmap_size(obj) < vma->vm_end - vma->vm_start) { > - ret = -EINVAL; > - goto out_unlock; > - } > - > - if (!obj->dev->driver->gem_vm_ops) { > - ret = -EINVAL; > - goto out_unlock; > - } > - > - vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; > - vma->vm_ops = obj->dev->driver->gem_vm_ops; > - vma->vm_private_data = obj; > - vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); > - > - /* Take a ref for this mapping of the object, so that the fault > - * handler can dereference the mmap offset's pointer to the object. > - * This reference is cleaned up by the corresponding vm_close > - * (which should happen whether the vma was created by this call, or > - * by a vm_open due to mremap or partial unmap or whatever). > - */ > - vma->vm_ops->open(vma); > - > -out_unlock: > + ret = drm_gem_mmap_obj(obj, omap_gem_mmap_size(obj), vma); > + if (ret < 0) > + return ret; > > return omap_gem_mmap_obj(obj, vma); > } > -- > 1.8.1.5 >
Hi Rob, On Tuesday 04 June 2013 07:33:42 Rob Clark wrote: > On Mon, Jun 3, 2013 at 10:20 PM, Laurent Pinchart wrote: > > The dma-buf mmap code was copied from the GEM mmap implementation. > > Replace it with the new drm_gem_mmap_obj() function. > > > > Signed-off-by: Laurent Pinchart > > <laurent.pinchart+renesas@ideasonboard.com> > > Reviewed-by: Rob Clark <robdclark@gmail.com> Thanks. Any chance you would have time to review 3/5 to 5/5 ? :-)
diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c index be7cd97..3256693 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c @@ -136,10 +136,6 @@ static void omap_gem_dmabuf_kunmap(struct dma_buf *buffer, kunmap(pages[page_num]); } -/* - * TODO maybe we can split up drm_gem_mmap to avoid duplicating - * some here.. or at least have a drm_dmabuf_mmap helper. - */ static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, struct vm_area_struct *vma) { @@ -149,31 +145,9 @@ static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, if (WARN_ON(!obj->filp)) return -EINVAL; - /* Check for valid size. */ - if (omap_gem_mmap_size(obj) < vma->vm_end - vma->vm_start) { - ret = -EINVAL; - goto out_unlock; - } - - if (!obj->dev->driver->gem_vm_ops) { - ret = -EINVAL; - goto out_unlock; - } - - vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; - vma->vm_ops = obj->dev->driver->gem_vm_ops; - vma->vm_private_data = obj; - vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); - - /* Take a ref for this mapping of the object, so that the fault - * handler can dereference the mmap offset's pointer to the object. - * This reference is cleaned up by the corresponding vm_close - * (which should happen whether the vma was created by this call, or - * by a vm_open due to mremap or partial unmap or whatever). - */ - vma->vm_ops->open(vma); - -out_unlock: + ret = drm_gem_mmap_obj(obj, omap_gem_mmap_size(obj), vma); + if (ret < 0) + return ret; return omap_gem_mmap_obj(obj, vma); }
The dma-buf mmap code was copied from the GEM mmap implementation. Replace it with the new drm_gem_mmap_obj() function. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> --- drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 32 +++---------------------------- 1 file changed, 3 insertions(+), 29 deletions(-)