drm_gpuva_link(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay so bestie, welcome to drm_gpuva_link(9) from the Kernel API Manual ✨ this is a kernel-page moment, lowercase void, capital vibes πŸŽ€


🌸 NAME

drm_gpuva_link β€” link a &drm_gpuva 🫢


✨ SYNOPSIS

void drm_gpuva_link (struct drm_gpuva *va , struct drm_gpuvm_bo *vm_bo
);

πŸŽ€ ARGUMENTS

  • va β€” the drm_gpuva to link πŸ’–
  • vm_bo β€” the drm_gpuvm_bo to add the drm_gpuva to πŸ‘‘

πŸ¦‹ DESCRIPTION

So here's the whole thing, and it's actually so clean: this adds the given va to the GPU VA list of the drm_gpuvm_bo, and it adds the drm_gpuvm_bo to the drm_gem_object it is associated with. Two links, one function, we love a multitasker πŸ’…

And the refcount lore: for every drm_gpuva entry added to the drm_gpuvm_bo, an additional reference of the latter is taken. That's just how it goes, no cap 🌈

⚠️ okay this part is the serious part, bestie: this function expects the caller to protect the GEM's GPUVA list against concurrent access, using either the GEM's dma-resv or gpuva.lock mutex. Your locking era is your responsibility β€” the function is not doing it for you πŸ™ˆ don't come crying to me when it races.

πŸ”₯ SEE ALSO

the group chat, basically β€” everybody's here 🌸


that's the whole page, slay 🧚 and for the receipts: this one lives in ./drivers/gpu/drm and it's dated October 2026 β€” iconic, timeless, periodt πŸ’œβ­

πŸ“¦ where this page comes from