Currently there is no easy way for a drm driver to safely check and allow drm_vma_offset_node for a drm file just once. Allow drm drivers to call non-refcounted version of drm_vma_node_allow() so that a driver doesn't need to keep track of each drm_vma_node_allow() to call subsequent drm_vma_node_revoke() to prevent memory leak. Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: David Airlie <airlied@gmail.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Andi Shyti <andi.shyti@linux.intel.com>
Showing the changes to include/drm (1 of 2 files). Show all
Unified · Split
| @@ -74,6 +74,7 @@ void drm_vma_offset_remove(struct drm_vma_offset_manager *mgr, · 73 unmodified lines | |||
| 74 | struct drm_vma_offset_node *node); | 74 | struct drm_vma_offset_node *node); |
| 75 | 75 | ||
| 76 | int drm_vma_node_allow(struct drm_vma_offset_node *node, struct drm_file *tag); | 76 | int drm_vma_node_allow(struct drm_vma_offset_node *node, struct drm_file *tag); |
| 77 | int drm_vma_node_allow_once(struct drm_vma_offset_node *node, struct drm_file *tag); | ||
| 77 | void drm_vma_node_revoke(struct drm_vma_offset_node *node, | 78 | void drm_vma_node_revoke(struct drm_vma_offset_node *node, |
| 78 | struct drm_file *tag); | 79 | struct drm_file *tag); |
| 79 | bool drm_vma_node_is_allowed(struct drm_vma_offset_node *node, | 80 | bool drm_vma_node_is_allowed(struct drm_vma_offset_node *node, |