Lines Matching refs:task
19 static struct __tasks_kfunc_map_value *insert_lookup_task(struct task_struct *task)
23 status = tasks_kfunc_map_insert(task);
27 return tasks_kfunc_map_value_lookup(task);
32 int BPF_PROG(task_kfunc_acquire_untrusted, struct task_struct *task, u64 clone_flags)
37 v = insert_lookup_task(task);
42 acquired = bpf_task_acquire(v->task);
53 int BPF_PROG(task_kfunc_acquire_fp, struct task_struct *task, u64 clone_flags)
69 int BPF_PROG(task_kfunc_acquire_unsafe_kretprobe, struct task_struct *task, u64 clone_flags)
74 acquired = bpf_task_acquire(task);
84 int BPF_PROG(task_kfunc_acquire_unsafe_kretprobe_rcu, struct task_struct *task, u64 clone_flags)
89 if (!task) {
94 acquired = bpf_task_acquire(task);
104 int BPF_PROG(task_kfunc_acquire_null, struct task_struct *task, u64 clone_flags)
119 int BPF_PROG(task_kfunc_acquire_unreleased, struct task_struct *task, u64 clone_flags)
123 acquired = bpf_task_acquire(task);
125 /* Acquired task is never released. */
133 int BPF_PROG(task_kfunc_xchg_unreleased, struct task_struct *task, u64 clone_flags)
138 v = insert_lookup_task(task);
142 kptr = bpf_kptr_xchg(&v->task, NULL);
153 int BPF_PROG(task_kfunc_acquire_release_no_null_check, struct task_struct *task, u64 clone_flags)
157 acquired = bpf_task_acquire(task);
158 /* Can't invoke bpf_task_release() on an acquired task without a NULL check. */
166 int BPF_PROG(task_kfunc_release_untrusted, struct task_struct *task, u64 clone_flags)
170 v = insert_lookup_task(task);
175 bpf_task_release(v->task);
182 int BPF_PROG(task_kfunc_release_fp, struct task_struct *task, u64 clone_flags)
194 int BPF_PROG(task_kfunc_release_null, struct task_struct *task, u64 clone_flags)
201 status = bpf_probe_read_kernel(&pid, sizeof(pid), &task->pid);
205 local.task = NULL;
214 acquired = bpf_task_acquire(task);
218 old = bpf_kptr_xchg(&v->task, acquired);
228 int BPF_PROG(task_kfunc_release_unacquired, struct task_struct *task, u64 clone_flags)
230 /* Cannot release trusted task pointer which was not acquired. */
231 bpf_task_release(task);
238 int BPF_PROG(task_kfunc_from_pid_no_null_check, struct task_struct *task, u64 clone_flags)
242 acquired = bpf_task_from_pid(task->pid);
252 int BPF_PROG(task_kfunc_from_vpid_no_null_check, struct task_struct *task, u64 clone_flags)
256 acquired = bpf_task_from_vpid(task->pid);
266 int BPF_PROG(task_kfunc_from_lsm_task_free, struct task_struct *task)
271 acquired = bpf_task_acquire(task);
281 int BPF_PROG(task_access_comm1, struct task_struct *task, u64 clone_flags)
283 bpf_strncmp(task->comm, 17, "foo");
289 int BPF_PROG(task_access_comm2, struct task_struct *task, u64 clone_flags)
291 bpf_strncmp(task->comm + 1, 16, "foo");
297 int BPF_PROG(task_access_comm3, struct task_struct *task, u64 clone_flags)
299 bpf_probe_read_kernel(task->comm, 16, task->comm);
305 int BPF_PROG(task_access_comm4, struct task_struct *task, const char *buf, bool exec)
308 * task->comm is a legacy ptr_to_btf_id. The verifier cannot guarantee
311 bpf_strncmp(task->comm, 16, "foo");
317 int BPF_PROG(task_kfunc_release_in_map, struct task_struct *task, u64 clone_flags)
322 if (tasks_kfunc_map_insert(task))
325 v = tasks_kfunc_map_value_lookup(task);
330 local = v->task;