Commit e797ebd1cbc75f6bdc2fe4f7ab39dd040d171994

Authored by Hemant Hariyani
Committed by Jacob Stiffler
1 parent f0feb1b9a2

drm/prime: Add DRM_RDWR for prime export

mmap requires O_RDWR to be set if MAP_SHARED is requested
with PROT_WRITE. Adding DRM_RDWR (defined as O_RDWR) as a
valid flag that can be passed to drm_prime_handle_to_fd_ioctl
for buffers that need required mapping.

Change-Id: If130b484efc917aa56562c4edb715b2a07687ce4
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>

Showing 2 changed files with 5 additions and 3 deletions Side-by-side Diff

drivers/gpu/drm/drm_prime.c
... ... @@ -573,11 +573,12 @@
573 573 return -ENOSYS;
574 574  
575 575 /* check flags are valid */
576   - if (args->flags & ~DRM_CLOEXEC)
  576 + if (args->flags & ~(DRM_CLOEXEC|DRM_RDWR))
577 577 return -EINVAL;
578 578  
579   - /* we only want to pass DRM_CLOEXEC which is == O_CLOEXEC */
580   - flags = args->flags & DRM_CLOEXEC;
  579 + /* we only want to pass DRM_CLOEXEC which is == O_CLOEXEC
  580 + and DRM_RDWR which is O_RDWR */
  581 + flags = args->flags & (DRM_CLOEXEC|DRM_RDWR);
581 582  
582 583 return dev->driver->prime_handle_to_fd(dev, file_priv,
583 584 args->handle, flags, &args->fd);
include/uapi/drm/drm.h
... ... @@ -644,6 +644,7 @@
644 644 };
645 645  
646 646 #define DRM_CLOEXEC O_CLOEXEC
  647 +#define DRM_RDWR O_RDWR
647 648 struct drm_prime_handle {
648 649 __u32 handle;
649 650