Lines Matching full:task

20 static struct __tasks_kfunc_map_value *insert_lookup_task(struct task_struct *task)  in insert_lookup_task()  argument
24 status = tasks_kfunc_map_insert(task); in insert_lookup_task()
28 return tasks_kfunc_map_value_lookup(task); in insert_lookup_task()
33 int BPF_PROG(task_kfunc_acquire_untrusted, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
38 v = insert_lookup_task(task); in BPF_PROG()
43 acquired = bpf_task_acquire(v->task); in BPF_PROG()
54 int BPF_PROG(task_kfunc_acquire_fp, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
70 int BPF_PROG(task_kfunc_acquire_unsafe_kretprobe, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
75 acquired = bpf_task_acquire(task); in BPF_PROG()
85 int BPF_PROG(task_kfunc_acquire_unsafe_kretprobe_rcu, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
90 if (!task) { in BPF_PROG()
95 acquired = bpf_task_acquire(task); in BPF_PROG()
105 int BPF_PROG(task_kfunc_acquire_null, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
120 int BPF_PROG(task_kfunc_acquire_unreleased, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
124 acquired = bpf_task_acquire(task); in BPF_PROG()
126 /* Acquired task is never released. */ in BPF_PROG()
134 int BPF_PROG(task_kfunc_xchg_unreleased, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
139 v = insert_lookup_task(task); in BPF_PROG()
143 kptr = bpf_kptr_xchg(&v->task, NULL); in BPF_PROG()
154 int BPF_PROG(task_kfunc_acquire_release_no_null_check, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
158 acquired = bpf_task_acquire(task); in BPF_PROG()
159 /* Can't invoke bpf_task_release() on an acquired task without a NULL check. */ in BPF_PROG()
167 int BPF_PROG(task_kfunc_release_untrusted, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
171 v = insert_lookup_task(task); in BPF_PROG()
176 bpf_task_release(v->task); in BPF_PROG()
183 int BPF_PROG(task_kfunc_release_fp, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
195 int BPF_PROG(task_kfunc_release_null, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
202 status = bpf_probe_read_kernel(&pid, sizeof(pid), &task->pid); in BPF_PROG()
206 local.task = NULL; in BPF_PROG()
215 acquired = bpf_task_acquire(task); in BPF_PROG()
219 old = bpf_kptr_xchg(&v->task, acquired); in BPF_PROG()
229 int BPF_PROG(task_kfunc_release_unacquired, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
231 /* Cannot release trusted task pointer which was not acquired. */ in BPF_PROG()
232 bpf_task_release(task); in BPF_PROG()
239 int BPF_PROG(task_kfunc_obj_drop_with_kptr, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
253 int BPF_PROG(task_kfunc_obj_drop_nmi_with_kptr, struct task_struct *task, in BPF_PROG() argument
265 acquired = bpf_task_acquire(task); in BPF_PROG()
267 old = bpf_kptr_xchg(&local->task, acquired); in BPF_PROG()
278 int BPF_PROG(task_kfunc_from_pid_no_null_check, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
282 acquired = bpf_task_from_pid(task->pid); in BPF_PROG()
292 int BPF_PROG(task_kfunc_from_vpid_no_null_check, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
296 acquired = bpf_task_from_vpid(task->pid); in BPF_PROG()
306 int BPF_PROG(task_kfunc_from_lsm_task_free, struct task_struct *task) in BPF_PROG() argument
311 acquired = bpf_task_acquire(task); in BPF_PROG()
321 int BPF_PROG(task_access_comm1, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
323 bpf_strncmp(task->comm, 17, "foo"); in BPF_PROG()
329 int BPF_PROG(task_access_comm2, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
331 bpf_strncmp(task->comm + 1, 16, "foo"); in BPF_PROG()
337 int BPF_PROG(task_access_comm3, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
339 bpf_probe_read_kernel(task->comm, 16, task->comm); in BPF_PROG()
345 int BPF_PROG(task_access_comm4, struct task_struct *task, const char *buf, bool exec) in BPF_PROG() argument
348 * task->comm is a legacy ptr_to_btf_id. The verifier cannot guarantee in BPF_PROG()
351 bpf_strncmp(task->comm, 16, "foo"); in BPF_PROG()
357 int BPF_PROG(task_kfunc_release_in_map, struct task_struct *task, u64 clone_flags) in BPF_PROG() argument
362 if (tasks_kfunc_map_insert(task)) in BPF_PROG()
365 v = tasks_kfunc_map_value_lookup(task); in BPF_PROG()
370 local = v->task; in BPF_PROG()
387 struct task_struct *task, *acquired; in BPF_PROG() local
395 task = v->task; in BPF_PROG()
397 if (!task) in BPF_PROG()
400 acquired = bpf_task_acquire(task); in BPF_PROG()
411 struct task_struct *task, *acquired; in BPF_PROG() local
419 task = v->task; in BPF_PROG()
421 if (!task) in BPF_PROG()
424 acquired = bpf_task_acquire(task); in BPF_PROG()
435 struct task_struct *task, *acquired; in BPF_PROG() local
444 task = v->task; in BPF_PROG()
446 if (!task) in BPF_PROG()
449 acquired = bpf_task_acquire(task); in BPF_PROG()