pvr_ioctl_vm_unmap(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… pvr_ioctl_vm_unmap(9) β€” the Kernel API Manual, bestie edition πŸŽ€

okay so real talk, this whole page lives in the Kernel API Manual, and it's literally about pvr_ioctl_vm_unmap β€” one little ioctl, one big job.


✨ NAME ✨

pvr_ioctl_vm_unmap β€” the IOCTL that unmaps a buffer from the GPU address space. that's it, that's the whole vibe. bye buffer πŸ‘‹


🌸 SYNOPSIS 🌸

int pvr_ioctl_vm_unmap (struct drm_device *drm_dev , void *raw_args ,
struct drm_file *file );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • drm_dev [IN] β€” the DRM device. main character of the whole operation, honestly.
  • raw_args [IN] β€” the arguments passed to this IOCTL. heads up bestie: this must be of type struct drm_pvr_ioctl_vm_unmap_args. no substitutions, no imposters πŸ™ˆ
  • file [IN] β€” DRM file private data. the private lil stash, iykyk.

πŸ’– DESCRIPTION πŸ’–

so this one gets called from userspace with DRM_IOCTL_PVR_VM_UNMAP. that's the whole flex β€” userspace says "unmap this please" via that ioctl, and here we are. slay.


πŸ”₯ RETURN πŸ”₯

the way this function reports back is literally giving honesty hour:

  • 0 on success πŸŽ‰ (the good timeline)
  • -EINVAL if drm_pvr_ioctl_vm_op_unmap_args.device_addr is not a valid device page-aligned device-virtual address πŸ’€ (alignment matters, no cap)
  • -ENOENT if there's currently no PowerVR buffer object mapped at drm_pvr_ioctl_vm_op_unmap_args.device_addr 😭 (nothing to unmap, nothing to slay)
ngl, -EINVAL and -ENOENT are two very different problems β€” one's "that address is sus", the other's "there's literally nothing there". know the difference 🫢

⭐ SEE ALSO ⭐

go read these next, bestie, they all click together like a friend group:


and that's the page, angel πŸ’œ this came out of ./drivers/gpu/drm/imagination, dated October 2026, and it's filed under pvr_ioctl_vm_unmap(9) β€” go unmap responsibly, muah 🫢✨

πŸ“¦ where this page comes from