pvr_ioctl_vm_unmap(9)
π 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 typestruct 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:
0on success π (the good timeline)-EINVALifdrm_pvr_ioctl_vm_op_unmap_args.device_addris not a valid device page-aligned device-virtual address π (alignment matters, no cap)-ENOENTif there's currently no PowerVR buffer object mapped atdrm_pvr_ioctl_vm_op_unmap_args.device_addrπ (nothing to unmap, nothing to slay)
ngl,-EINVALand-ENOENTare 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:
- Kernel file
./drivers/gpu/drm/imagination/pvr_drv.cPowerVR (Series 6 and later) and IMG Graphics Driver(9) pvr_ioctl_create_bo(9)pvr_ioctl_get_bo_mmap_offset(9)pvr_dev_query_gpu_info_get(9)pvr_dev_query_runtime_info_get(9)pvr_dev_query_quirks_get(9)pvr_dev_query_enhancements_get(9)pvr_ioctl_dev_query(9)pvr_ioctl_create_context(9)pvr_ioctl_destroy_context(9)pvr_ioctl_create_free_list(9)pvr_ioctl_destroy_free_list(9)pvr_ioctl_create_hwrt_dataset(9)pvr_ioctl_destroy_hwrt_dataset(9)pvr_ioctl_create_vm_context(9)pvr_ioctl_destroy_vm_context(9)pvr_ioctl_vm_map(9)pvr_drm_driver_open(9)pvr_drm_driver_postclose(9)
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
- 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