GBM should switch to using PRIME buffers rather than flink
Bug #1124631 reported by
Chris Halse Rogers
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Fix Released
|
Medium
|
Chris Halse Rogers |
Bug Description
Flinking buffers makes them available to all authenticated DRM clients; since anything can request DRM authentication, this means that basically any process running in the users session can snoop on the framebuffer (bug #1025525).
We should transition away from flink to passing around PRIME fds. These have the nice property that only the process you passed the fd to has access to the buffer.
We'll also need to handle PRIME internally anyway, because it's how to pass buffers between GPUs.
Related branches
lp:~raof/mir/use-dma-buf
- PS Jenkins bot (community): Approve (continuous-integration)
- Alexandros Frantzis (community): Needs Fixing
- Robert Carr (community): Approve
- Kevin DuBois (community): Approve
- Alan Griffiths: Approve
- Chris Halse Rogers: Approve
-
Diff: 1105 lines (+546/-107)24 files modifiedinclude/server/mir/frontend/session_mediator.h (+2/-0)
include/shared/mir/frontend/client_constants.h (+35/-0)
src/client/client_buffer_depository.cpp (+23/-33)
src/client/client_buffer_depository.h (+13/-5)
src/client/gbm/drm_fd_handler.h (+2/-0)
src/client/gbm/gbm_client_buffer.cpp (+19/-16)
src/client/gbm/gbm_client_buffer.h (+2/-0)
src/client/gbm/gbm_client_platform.cpp (+17/-0)
src/client/mir_surface.cpp (+2/-1)
src/server/frontend/CMakeLists.txt (+1/-0)
src/server/frontend/client_buffer_tracker.cpp (+53/-0)
src/server/frontend/client_buffer_tracker.h (+62/-0)
src/server/frontend/session_mediator.cpp (+36/-23)
src/server/graphics/gbm/gbm_buffer.cpp (+6/-8)
src/server/graphics/gbm/gbm_buffer.h (+1/-1)
tests/unit-tests/client/gbm/mock_drm_fd_handler.h (+2/-0)
tests/unit-tests/client/gbm/test_gbm_client_buffer.cpp (+38/-9)
tests/unit-tests/client/test_client_buffer_depository.cpp (+33/-0)
tests/unit-tests/frontend/CMakeLists.txt (+1/-0)
tests/unit-tests/frontend/test_client_buffer_tracker.cpp (+108/-0)
tests/unit-tests/frontend/test_session_mediator.cpp (+69/-3)
tests/unit-tests/graphics/gbm/mock_drm.cpp (+10/-0)
tests/unit-tests/graphics/gbm/mock_drm.h (+3/-0)
tests/unit-tests/graphics/gbm/test_gbm_buffer.cpp (+8/-8)
Changed in mir: | |
importance: | Undecided → Medium |
status: | New → Triaged |
information type: | Proprietary → Public |
Changed in mir: | |
assignee: | nobody → Chris Halse Rogers (raof) |
Changed in mir: | |
status: | Triaged → In Progress |
Changed in mir: | |
milestone: | none → 0.0.3 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.0.3