• Home
  • Raw
  • Download

Lines Matching +full:input +full:- +full:justification

1 .. SPDX-License-Identifier: GPL-2.0
3 .. _kfuncs-header-label:
30 ----------------------------
41 __diag_ignore_all("-Wmissing-prototypes",
56 -------------------------------
64 ---------------------
80 --------------------
104 -------------------------
121 -------------------------
144 -------------------------------------
152 ---------------------
181 ---------------------
191 ----------------------
200 ---------------------
209 --------------------------
222 Pointers to non-BTF objects (e.g. scalar pointers) may also be passed to
223 KF_TRUSTED_ARGS kfuncs, and may have a non-zero offset.
240 .. code-block:: c
248 .. code-block:: c
268 .. code-block:: c
274 -----------------------
280 --------------------------
289 -----------------
293 that the objects are valid and there is no use-after-free. The pointers are not
302 ------------------------
317 encouraged to make their use-cases known as early as possible, and participate
322 --------------------------
344 2.6 Specifying no-cast aliases with ___init
345 --------------------------------------------
355 .. code-block:: c
367 In some cases, this type-aliasing behavior is not desired. ``struct
370 .. code-block:: c
392 kfuncs provide a kernel <-> kernel API, and thus are not bound by any of the
393 strict stability restrictions associated with kernel <-> user UAPIs. This means
399 kfunc without having a reasonable justification. Whether or not they'll choose
419 refactoring cannot typically change callers in-place when a kfunc changes,
424 symbols, and out-of-tree BPF programs that use kfuncs should be considered
431 will not ever hard-block a change in the kernel purely for stability
435 case-by-case basis, and which is informed by data points such as those
438 justification, but it is a possibility that must be accepted if one is to
442 ---------------------
470 case-by-case basis, and will typically depend on how widespread the use of
488 -------------------------------
493 .. kernel-doc:: kernel/bpf/helpers.c
500 .. code-block:: c
527 .. code-block:: c
549 bpf_printk("Global task %s is valid", local_copy->comm);
559 ----
565 .. kernel-doc:: kernel/bpf/helpers.c
570 .. code-block:: c
577 lookup = bpf_task_from_pid(task->pid);
580 return -ENOENT;
582 if (lookup->pid != task->pid) {
584 * globally-unique pid from the init_pid_ns. Thus,
586 * same as the input task.
589 return -EINVAL;
601 --------------------------
605 .. kernel-doc:: kernel/bpf/helpers.c
611 ----
618 .. kernel-doc:: kernel/bpf/helpers.c
621 .. kernel-doc:: kernel/bpf/helpers.c
628 .. code-block:: c
640 parent = bpf_cgroup_ancestor(cgrp, cgrp->level - 1);
642 return -ENOENT;
644 bpf_printk("Parent id is %d", parent->self.id);
652 ---------------------------
655 destroy struct cpumask * objects. Please refer to :ref:`cpumasks-header-label`