STRUCT DRM_PAGEMAP_DEV_HOLD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

struct drm_pagemap_dev_hold β€” bestie, it's the lil' helper struct to aid in drm_device release πŸ’… (yes, that's the whole name, and yes we're in the Kernel API Manual, section 9, so buckle up πŸŽ€)


✨ SYNOPSIS ✨

struct drm_pagemap_dev_hold {
    struct llist_node link;
    struct drm_device *drm;
 };

🫢 MEMBERS 🫢

  • link β€” your girl's ticket into drm_pagemap_unhold_list, where reference releases get deferred for later. it's giving "wait your turn, bestie" 😌
  • drm β€” the drm device we're gonna put. that's the whole job. iconic, honestly ✨

πŸ’– DESCRIPTION πŸ’–

okay so here's the lore πŸ“ β€” when a struct drm_pagemap gets released, we also need to release the reference it's holding on the drm device. no cap, that's mandatory.

but here's the plot twist 😭 β€” that release typically needs to happen separately from a system-wide workqueue. like, different vibe, different lane. so every single time a struct drm_pagemap is initialized (or re-initialized, if it's cached πŸ”), we allocate a separate drm_pagemap_dev_hold item. and from that item we put the drm device and the associated module. literally that's it, that's the whole struct's main character arc πŸ‘‘

lowkey elegant. highkey necessary. periodt πŸ’…


πŸ¦‹ SEE ALSO πŸ¦‹


aaaand that's the whole page, bestie πŸ§šπŸ’œ one last lil' vibe check before you go: this one lives in ./drivers/gpu/drm, it's dated October 2026, and it's filed under struct drm_pagemap_dev_hold(9) β€” slay, go read the source, iykyk πŸ”₯πŸ‘‘

πŸ“¦ where this page comes from