drm_gpuva_ops_free(9)
π drm_gpuva_ops_free(9) β the Kernel API Manual, bestie edition
okay so picture this: you're deep in the kernel, in the drm_gpuva_ops_free(9) page of the Kernel API Manual, and you just need to know how to yeet a drm_gpuva_ops struct into the void. that's it. that's the whole vibe. let's go π«Ά
πΈ NAME πΈ
drm_gpuva_ops_free β free the given &drm_gpuva_ops
literally what it says on the tin, no cap π
β¨ SYNOPSIS β¨
void drm_gpuva_ops_free (struct drm_gpuvm *gpuvm , struct drm_gpuva_ops *ops );
she takes two arguments and returns nothing. void. iconic behavior, tbh.
π ARGUMENTS π
gpuvmβ thedrm_gpuvmthat the ops were created for. like, the origin story. the parent. π§opsβ thedrm_gpuva_opsyou're about to free. bye bestie π
π DESCRIPTION π
Frees the given drm_gpuva_ops structure β and not just the top-level struct, oh no. it frees all the ops associated with it too. the whole friend group goes. the way that this function handles cleanup for you is honestly so main character of it πβ¨
no cap: this is the free. if you were looking for the matching alloc, this is not that page. this is the part where everything gets cleaned up π§Ή
π₯ SEE ALSO π₯
so many friends in this section, and i'm not skipping a single one, because every single one of them is listed in the original and i refuse to do them dirty like that. periodt.
kernel file ./drivers/gpu/drm/drm_gpuvm.c β and its whole extended universe:
Overview(9)Split and Merge(9)Madvise Logic - Splitting and Traversal(9)Locking(9)Examples(9)get_next_vm_bo_from_list(9)for_each_vm_bo_in_list(9)restore_vm_bo_list(9)drm_gpuvm_bo_is_zombie(9)drm_gpuvm_bo_list_add(9)drm_gpuvm_bo_list_del_init(9)drm_gpuvm_bo_list_del(9)drm_gpuvm_range_valid(9)drm_gpuvm_resv_object_alloc(9)drm_gpuvm_init(9)drm_gpuvm_put(9)drm_gpuvm_prepare_vm(9)drm_gpuvm_prepare_objects(9)drm_gpuvm_prepare_range(9)drm_gpuvm_exec_lock(9)drm_gpuvm_exec_lock_array(9)drm_gpuvm_exec_lock_range(9)drm_gpuvm_validate(9)drm_gpuvm_resv_add_fence(9)drm_gpuvm_bo_create(9)drm_gpuvm_bo_put(9)drm_gpuvm_bo_put_deferred(9)drm_gpuvm_bo_deferred_cleanup(9)drm_gpuvm_bo_find(9)drm_gpuvm_bo_obtain_locked(9)drm_gpuvm_bo_obtain_prealloc(9)drm_gpuvm_bo_extobj_add(9)drm_gpuvm_bo_evict(9)drm_gpuva_insert(9)drm_gpuva_remove(9)drm_gpuva_link(9)drm_gpuva_unlink(9)drm_gpuva_unlink_defer(9)drm_gpuva_find_first(9)drm_gpuva_find(9)drm_gpuvm_interval_empty(9)drm_gpuva_map(9)drm_gpuva_remap(9)drm_gpuva_unmap(9)drm_gpuvm_sm_map(9)drm_gpuvm_sm_unmap(9)drm_gpuvm_sm_map_exec_lock(9)drm_gpuvm_sm_unmap_exec_lock(9)drm_gpuvm_sm_map_ops_create(9)drm_gpuvm_madvise_ops_create(9)drm_gpuvm_sm_unmap_ops_create(9)drm_gpuvm_prefetch_ops_create(9)drm_gpuvm_bo_unmap_ops_create(9)
like i said. the whole group chat ππ π½
π the sign-off π
this page lives in ./drivers/gpu/drm, dated October 2026, and it's drm_gpuva_ops_free(9) from the Kernel API Manual β so go free those ops, bestie, you ate πππ¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms