Hi This is the second part of the unified VMA manager. It implements proper access management so applications can map only buffers that they own handles for. Patches of interest probably are: #1: Implement VMA access management helpers #9: Make TTM deny unprivileged mmap() calls #10: Do the same for GEM The remaining patches just hook it up in all drivers. The implementation is pretty easy. On gem_open_object() drivers add the "struct file*" pointer to the list of allowed open-files of a bo. On gem_close_object() drivers remove it again. For TTM, drivers do this manually as there is no access to TTM bo's from generic GEM code. For GEM, drivers can set DRIVER_GEM_MMAP (copied from airlied's proposal) and GEM core will take care of this. If we want this to be more uniform, I can add gem_open_object() and gem_close_object() callbacks to all the GEM drivers and call drm_vma_node_allow() and drm_vma_node_revoke() respectively. Just let me know what you think is cleaner. Cheers David David Herrmann (16): drm/vma: add access management helpers drm/ast: implement mmap access managament drm/cirrus: implement mmap access managament drm/mgag200: implement mmap access managament drm/nouveau: implement mmap access managament drm/radeon: implement mmap access managament drm/qxl: implement mmap access managament drm/vmwgfx: implement mmap access managament drm/ttm: prevent mmap access to unauthorized users drm/gem: implement mmap access management drm/i915: enable GEM mmap access management drm/exynos: enable GEM mmap access management drm/gma500: enable GEM mmap access management drm/omap: enable GEM mmap access management drm/udl: enable GEM mmap access management drm/host1x: enable GEM mmap access management Documentation/DocBook/drm.tmpl | 13 +++ drivers/gpu/drm/ast/ast_drv.c | 2 + drivers/gpu/drm/ast/ast_drv.h | 4 + drivers/gpu/drm/ast/ast_main.c | 15 +++ drivers/gpu/drm/cirrus/cirrus_drv.h | 4 + drivers/gpu/drm/cirrus/cirrus_main.c | 15 +++ drivers/gpu/drm/drm_gem.c | 37 +++++++- drivers/gpu/drm/drm_vma_manager.c | 155 +++++++++++++++++++++++++++++++ drivers/gpu/drm/exynos/exynos_drm_drv.c | 3 +- drivers/gpu/drm/gma500/psb_drv.c | 3 +- drivers/gpu/drm/i915/i915_drv.c | 3 +- drivers/gpu/drm/mgag200/mgag200_drv.c | 2 + drivers/gpu/drm/mgag200/mgag200_drv.h | 4 + drivers/gpu/drm/mgag200/mgag200_main.c | 15 +++ drivers/gpu/drm/nouveau/nouveau_gem.c | 19 +++- drivers/gpu/drm/omapdrm/omap_drv.c | 3 +- drivers/gpu/drm/qxl/qxl_gem.c | 7 +- drivers/gpu/drm/radeon/radeon_gem.c | 7 ++ drivers/gpu/drm/ttm/ttm_bo_vm.c | 9 +- drivers/gpu/drm/udl/udl_drv.c | 3 +- drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 29 +++--- drivers/gpu/host1x/drm/drm.c | 2 +- include/drm/drmP.h | 1 + include/drm/drm_vma_manager.h | 21 ++++- 24 files changed, 342 insertions(+), 34 deletions(-) -- 1.8.3.4 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel