Message ID | CAOc=iHWZp+CvDjbOMakRd6whCyPVhxF2vrOYN8qtgBk70idJPw@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2012/7/10, Cooper Yuan <cooperyuan@gmail.com>: > Set dma_buf exporter permission as ReadWrite, otherwise mmap will get > errno 13: permission denied. > > Signed-off-by: Cooper Yuan <cooperyuan@gmail.com> > --- > drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c > b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c > index 613bf8a..e4eeb0b 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c > @@ -29,6 +29,7 @@ > #include "exynos_drm_drv.h" > #include "exynos_drm_gem.h" > > +#include <linux/fcntl.h> > #include <linux/dma-buf.h> > > static struct sg_table *exynos_pages_to_sg(struct page **pages, int > nr_pages, > @@ -179,7 +180,7 @@ struct dma_buf *exynos_dmabuf_prime_export(struct > drm_device *drm_dev, > struct exynos_drm_gem_obj *exynos_gem_obj = to_exynos_gem_obj(obj); > > return dma_buf_export(exynos_gem_obj, &exynos_dmabuf_ops, > - exynos_gem_obj->base.size, 0600); > + exynos_gem_obj->base.size, O_RDWR); this way is not good. the permission should be set from user so use flags variable. > } > > struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device > *drm_dev, > -- > 1.7.0.4 > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel >
2012/7/20, InKi Dae <daeinki@gmail.com>: > 2012/7/10, Cooper Yuan <cooperyuan@gmail.com>: >> Set dma_buf exporter permission as ReadWrite, otherwise mmap will get >> errno 13: permission denied. >> >> Signed-off-by: Cooper Yuan <cooperyuan@gmail.com> >> --- >> drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 3 ++- >> 1 files changed, 2 insertions(+), 1 deletions(-) >> >> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >> b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >> index 613bf8a..e4eeb0b 100644 >> --- a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >> +++ b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >> @@ -29,6 +29,7 @@ >> #include "exynos_drm_drv.h" >> #include "exynos_drm_gem.h" >> >> +#include <linux/fcntl.h> >> #include <linux/dma-buf.h> >> >> static struct sg_table *exynos_pages_to_sg(struct page **pages, int >> nr_pages, >> @@ -179,7 +180,7 @@ struct dma_buf *exynos_dmabuf_prime_export(struct >> drm_device *drm_dev, >> struct exynos_drm_gem_obj *exynos_gem_obj = to_exynos_gem_obj(obj); >> >> return dma_buf_export(exynos_gem_obj, &exynos_dmabuf_ops, >> - exynos_gem_obj->base.size, 0600); >> + exynos_gem_obj->base.size, O_RDWR); > > this way is not good. the permission should be set from user so use > flags variable. > hm, it seems like that now drm prime has one issue. the flags has only O_CLOEXEC by drm_prime_handle_to_fd_ioctl function but I think we need some flag values from user. so could you please explain why having only O_CLOEXEC? Thanks, Inki Dae >> } >> >> struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device >> *drm_dev, >> -- > > >> 1.7.0.4 >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/dri-devel >> >
I'm so sorry, there was typo (you -> anyone) 2012/7/20, InKi Dae <daeinki@gmail.com>: > 2012/7/20, InKi Dae <daeinki@gmail.com>: >> 2012/7/10, Cooper Yuan <cooperyuan@gmail.com>: >>> Set dma_buf exporter permission as ReadWrite, otherwise mmap will get >>> errno 13: permission denied. >>> >>> Signed-off-by: Cooper Yuan <cooperyuan@gmail.com> >>> --- >>> drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 3 ++- >>> 1 files changed, 2 insertions(+), 1 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >>> b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >>> index 613bf8a..e4eeb0b 100644 >>> --- a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >>> +++ b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c >>> @@ -29,6 +29,7 @@ >>> #include "exynos_drm_drv.h" >>> #include "exynos_drm_gem.h" >>> >>> +#include <linux/fcntl.h> >>> #include <linux/dma-buf.h> >>> >>> static struct sg_table *exynos_pages_to_sg(struct page **pages, int >>> nr_pages, >>> @@ -179,7 +180,7 @@ struct dma_buf *exynos_dmabuf_prime_export(struct >>> drm_device *drm_dev, >>> struct exynos_drm_gem_obj *exynos_gem_obj = to_exynos_gem_obj(obj); >>> >>> return dma_buf_export(exynos_gem_obj, &exynos_dmabuf_ops, >>> - exynos_gem_obj->base.size, 0600); >>> + exynos_gem_obj->base.size, O_RDWR); >> >> this way is not good. the permission should be set from user so use >> flags variable. >> > > hm, it seems like that now drm prime has one issue. the flags has only > O_CLOEXEC by drm_prime_handle_to_fd_ioctl function but I think we need > some flag values from user. so could anyone please explain why having > only O_CLOEXEC? > > Thanks, > Inki Dae > >>> } >>> >>> struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device >>> *drm_dev, >>> -- >> >> >>> 1.7.0.4 >>> _______________________________________________ >>> dri-devel mailing list >>> dri-devel@lists.freedesktop.org >>> http://lists.freedesktop.org/mailman/listinfo/dri-devel >>> >> >
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c index 613bf8a..e4eeb0b 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c @@ -29,6 +29,7 @@ #include "exynos_drm_drv.h" #include "exynos_drm_gem.h" +#include <linux/fcntl.h> #include <linux/dma-buf.h> static struct sg_table *exynos_pages_to_sg(struct page **pages, int nr_pages, @@ -179,7 +180,7 @@ struct dma_buf *exynos_dmabuf_prime_export(struct drm_device *drm_dev, struct exynos_drm_gem_obj *exynos_gem_obj = to_exynos_gem_obj(obj); return dma_buf_export(exynos_gem_obj, &exynos_dmabuf_ops, - exynos_gem_obj->base.size, 0600); + exynos_gem_obj->base.size, O_RDWR); }
Set dma_buf exporter permission as ReadWrite, otherwise mmap will get errno 13: permission denied. Signed-off-by: Cooper Yuan <cooperyuan@gmail.com> --- drivers/gpu/drm/exynos/exynos_drm_dmabuf.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device *drm_dev,