Module: Mesa Branch: staging/21.1 Commit: 3efa4eb1331382ea81c4328415d55763b830ff57 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3efa4eb1331382ea81c4328415d55763b830ff57
Author: Maksim Sisov <[email protected]> Date: Tue May 18 08:23:56 2021 +0300 iris: export GEM handle with RDWR access rights There is a regression that made it impossible to export gem handles with write access. That is, a client may export gem handles of each buffer plane, then export dmabuf fds using these handles, and mmap these dmabuf in a different process (this is what Chromium does). After https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4861, it became impossible as mmap resulted in EACCESS error as slightly different approach was taken for exporting these gem handles. This CL fixes exporting gem handles (which are exported from dmabuf fds) by adding the DRM_RDWR flag. Cc: mesa-stable Fixes #3119 Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10851> (cherry picked from commit b74898ef699486d0513fcd3af2587a831df99dff) --- .pick_status.json | 2 +- src/gallium/drivers/iris/iris_bufmgr.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index fac487e8f64..5498394f5c2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -553,7 +553,7 @@ "description": "iris: export GEM handle with RDWR access rights", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/iris/iris_bufmgr.c b/src/gallium/drivers/iris/iris_bufmgr.c index be50e5b5488..9fc6e49df62 100644 --- a/src/gallium/drivers/iris/iris_bufmgr.c +++ b/src/gallium/drivers/iris/iris_bufmgr.c @@ -1505,7 +1505,7 @@ iris_bo_export_dmabuf(struct iris_bo *bo, int *prime_fd) iris_bo_make_external(bo); if (drmPrimeHandleToFD(bufmgr->fd, bo->gem_handle, - DRM_CLOEXEC, prime_fd) != 0) + DRM_CLOEXEC | DRM_RDWR, prime_fd) != 0) return -errno; return 0; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
