STRUCT DRM_VC4_CREATE_SHADER_BO(9)
β¨ struct drm_vc4_create_shader_bo β Kernel API Manual β¨
okay so bestie, welcome to the Kernel API Manual, and buckle up because this one is a little struct with a lot of opinions π
π NAME π
struct drm_vc4_create_shader_bo β the ioctl argument for creating VC4 shader BOs. yes that's the whole name, she's long but she's iconic π€
πΈ SYNOPSIS πΈ
struct drm_vc4_create_shader_bo {
__u32 size;
__u32 flags;
__u64 data;
__u32 handle;
__u32 pad;
};
like, look at her. five fields. flawless. no notes π«Ά
π¦ Members π¦
the full cast is right up there in the SYNOPSIS β size, flags, data, handle, pad β that's the entire squad, no extras, no surprises β¨
π₯ Description π₯
okay so here's the drama: if a shader could get overwritten while it's also being executed, that would allow privilege escalation π and we are simply not doing that.
so. shaders must be created using this ioctl. that's the rule, that's the whole vibe.
and they can't be mmapped later β no mmap for these babies, ever, no cap. π
fr fr take this seriously β the "no overwriting while executing" and "no mmap afterwards" bits are the entire security model here, don't go looking for a loophole π
π SEE ALSO π
- Kernel file
./include/uapi/drm/vc4_drm.h struct drm_vc4_submit_cl(9)struct drm_vc4_wait_seqno(9)struct drm_vc4_wait_bo(9)struct drm_vc4_create_bo(9)struct drm_vc4_mmap_bo(9)struct drm_vc4_label_bo(9)
and that's the page, bestie π this one came straight out of ./include/uapi/drm, dated October 2026, and honestly? she ate. π go read the SEE ALSOs, ily, bye ππ¦
π¦ 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