mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-27 03:49:57 -04:00
drm/shmem-helper: Pass GEM shmem object in public interfaces
Change all GEM SHMEM object functions that receive a GEM object of type struct drm_gem_object to expect an object of type struct drm_gem_shmem_object instead. This change reduces the number of upcasts from struct drm_gem_object by moving them into callers. The C compiler can now verify that the GEM SHMEM functions are called with the correct type. For consistency, the patch also renames drm_gem_shmem_free_object to drm_gem_shmem_free. It further updates documentation for a number of functions. v3: * fix docs for drm_gem_shmem_object_free() v2: * mention _object_ callbacks in docs (Daniel) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20211108093149.7226-4-tzimmermann@suse.de
This commit is contained in:
@@ -47,7 +47,7 @@ void v3d_free_object(struct drm_gem_object *obj)
|
||||
/* GPU execution may have dirtied any pages in the BO. */
|
||||
bo->base.pages_mark_dirty_on_put = true;
|
||||
|
||||
drm_gem_shmem_free_object(obj);
|
||||
drm_gem_shmem_free(&bo->base);
|
||||
}
|
||||
|
||||
static const struct drm_gem_object_funcs v3d_gem_funcs = {
|
||||
@@ -95,7 +95,7 @@ v3d_bo_create_finish(struct drm_gem_object *obj)
|
||||
/* So far we pin the BO in the MMU for its lifetime, so use
|
||||
* shmem's helper for getting a lifetime sgt.
|
||||
*/
|
||||
sgt = drm_gem_shmem_get_pages_sgt(&bo->base.base);
|
||||
sgt = drm_gem_shmem_get_pages_sgt(&bo->base);
|
||||
if (IS_ERR(sgt))
|
||||
return PTR_ERR(sgt);
|
||||
|
||||
@@ -141,7 +141,7 @@ struct v3d_bo *v3d_bo_create(struct drm_device *dev, struct drm_file *file_priv,
|
||||
return bo;
|
||||
|
||||
free_obj:
|
||||
drm_gem_shmem_free_object(&shmem_obj->base);
|
||||
drm_gem_shmem_free(shmem_obj);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ v3d_prime_import_sg_table(struct drm_device *dev,
|
||||
|
||||
ret = v3d_bo_create_finish(obj);
|
||||
if (ret) {
|
||||
drm_gem_shmem_free_object(obj);
|
||||
drm_gem_shmem_free(&to_v3d_bo(obj)->base);
|
||||
return ERR_PTR(ret);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user