On Tue, 2026-05-12 at 13:59 +0800, Kaitao cheng wrote:
> From: Kaitao Cheng <[email protected]>
> 
> Allow users to remove any node from a linked list.
> 
> We have added an additional parameter bpf_list_head *head to
> bpf_list_del, as the verifier requires the head parameter to
> check whether the lock is being held.
> 
> Signed-off-by: Kaitao Cheng <[email protected]>
> ---

Reviewed-by: Eduard Zingerman <[email protected]>

[...]

> @@ -11456,7 +11459,8 @@ static bool check_kfunc_is_graph_node_api(struct 
> bpf_verifier_env *env,
>  
>       switch (node_field_type) {
>       case BPF_LIST_NODE:
> -             ret = is_bpf_list_push_kfunc(kfunc_btf_id);
> +             ret = is_bpf_list_push_kfunc(kfunc_btf_id) ||
> +                   kfunc_btf_id == special_kfunc_list[KF_bpf_list_del];

Nit: to keep everything in the same style, maybe add a is_bpf_list_del_kfunc() 
helper?

>               break;
>       case BPF_RB_NODE:
>               ret = (is_bpf_rbtree_add_kfunc(kfunc_btf_id) ||

Reply via email to