• J
    bpf: Add comment to document BTF type PTR_TO_BTF_ID_OR_NULL · ba5f4cfe
    John Fastabend 提交于
    The meaning of PTR_TO_BTF_ID_OR_NULL differs slightly from other types
    denoted with the *_OR_NULL type. For example the types PTR_TO_SOCKET
    and PTR_TO_SOCKET_OR_NULL can be used for branch analysis because the
    type PTR_TO_SOCKET is guaranteed to _not_ have a null value.
    
    In contrast PTR_TO_BTF_ID and BTF_TO_BTF_ID_OR_NULL have slightly
    different meanings. A PTR_TO_BTF_TO_ID may be a pointer to NULL value,
    but it is safe to read this pointer in the program context because
    the program context will handle any faults. The fallout is for
    PTR_TO_BTF_ID the verifier can assume reads are safe, but can not
    use the type in branch analysis. Additionally, authors need to be
    extra careful when passing PTR_TO_BTF_ID into helpers. In general
    helpers consuming type PTR_TO_BTF_ID will need to assume it may
    be null.
    
    Seeing the above is not obvious to readers without the back knowledge
    lets add a comment in the type definition.
    
    Editorial comment, as networking and tracing programs get closer
    and more tightly merged we may need to consider a new type that we
    can ensure is non-null for branch analysis and also passing into
    helpers.
    Signed-off-by: NJohn Fastabend <john.fastabend@gmail.com>
    Signed-off-by: NAlexei Starovoitov <ast@kernel.org>
    Acked-by: NLorenz Bauer <lmb@cloudflare.com>
    ba5f4cfe
bpf.h 61.0 KB