bpf_list_push_back(9)
π bpf_list_push_back(9) β your fave kernel helper, now with lore
okay so bestie, buckle up, because today we're talking about bpf_list_push_back, a genuine icon from the Kernel API Manual. she's a kfunc, she's in bpf_list_push_back(9), and she does exactly one thing but she does it flawlessly. no cap. β¨
π¦ NAME
bpf_list_push_back β add a node to the back of a BPF linked list. that's it, that's the whole job description, and honestly? she ate. π
πΈ SYNOPSIS
__bpf_kfunc int bpf_list_push_back (struct bpf_list_head *head , struct
bpf_list_node *node , struct btf_struct_meta *meta , u64 off );
like look at that signature. four whole parameters. main character energy fr fr. π
π ARGUMENTS
headβ the list head π«Ά the actual list you're adding to, your whole vibe containernodeβ the node to insert β¨ the little guy going to the back of the linemetaβ verifier-supplied struct metadata π₯ not yours to worry about, the verifier handles itoffβ verifier-supplied offset ofnodewithin the containing object π also verifier business, not yours
π DESCRIPTION
Insert node at the back of head. simple, elegant, no notes. π
here's the tea though: the verifier rewrites meta and off β BPF programs do not set them. so like, don't try to be clever and set them yourself, okay? the verifier's got that part handled, iykyk. π§
β RETURN
0on success π slay, it worked-EINVALifnodeis already linked π like bestie that node is already in a list, you can't just double-book it
π₯ SEE ALSO
the whole friend group, honestly π β and the kernel file ./kernel/bpf/helpers.c:
bpf_obj_new(9), bpf_percpu_obj_new(9), bpf_obj_drop(9), bpf_percpu_obj_drop(9), bpf_refcount_acquire(9), bpf_list_push_front(9), bpf_rbtree_add(9), bpf_task_acquire(9), bpf_task_release(9), bpf_cgroup_acquire(9), bpf_cgroup_release(9), bpf_cgroup_ancestor(9), bpf_cgroup_from_id(9), bpf_task_under_cgroup(9), bpf_task_get_cgroup1(9), bpf_task_from_pid(9), bpf_task_from_vpid(9), bpf_dynptr_slice(9), bpf_dynptr_slice_rdwr(9), bpf_dynptr_copy(9), bpf_dynptr_memset(9), bpf_iter_bits_new(9), bpf_iter_bits_next(9), bpf_iter_bits_destroy(9), bpf_copy_from_user_str(9), bpf_copy_from_user_task_str(9), bpf_strcmp(9), bpf_strcasecmp(9), bpf_strnchr(9), bpf_strchr(9), bpf_strchrnul(9), bpf_strrchr(9), bpf_strnlen(9), bpf_strlen(9), bpf_strspn(9), bpf_strcspn(9), bpf_strstr(9), bpf_strcasestr(9), bpf_strnstr(9), bpf_strncasestr(9), bpf_lookup_user_key(9), bpf_lookup_system_key(9), bpf_key_put(9), bpf_verify_pkcs7_signature(9), bpf_task_work_schedule_signal(9), bpf_task_work_schedule_resume(9), bpf_timer_cancel_async(9)
and that's the page babes π this whole thing lives in ./kernel/bpf, dated October 2026 β go forth and push back, bestie. mwah. ππ«Ά
π¦ 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