lkml.org 
[lkml]   [2019]   [Dec]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH bpf-next v1 11/13] tools/libbpf: Add bpf_program__attach_lsm
    On Fri, Dec 20, 2019 at 7:42 AM KP Singh <kpsingh@chromium.org> wrote:
    >
    > From: KP Singh <kpsingh@google.com>
    >
    > Add functionality in libbpf to attach eBPF program to LSM hooks.
    >
    > Signed-off-by: KP Singh <kpsingh@google.com>
    > ---
    > tools/lib/bpf/libbpf.c | 127 +++++++++++++++++++++++++++++++++++++--
    > tools/lib/bpf/libbpf.h | 2 +
    > tools/lib/bpf/libbpf.map | 1 +
    > 3 files changed, 126 insertions(+), 4 deletions(-)
    >
    > diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
    > index b0b27d8e5a37..ab2b23b4f21f 100644
    > --- a/tools/lib/bpf/libbpf.c
    > +++ b/tools/lib/bpf/libbpf.c
    > @@ -5122,8 +5122,8 @@ int libbpf_prog_type_by_name(const char *name, enum bpf_prog_type *prog_type,
    > return -ESRCH;
    > }
    >
    > -static inline int __btf__typdef_with_prefix(struct btf *btf, const char *name,
    > - const char *prefix)
    > +static inline int __btf__type_with_prefix(struct btf *btf, const char *name,
    > + const char *prefix)

    Please do this rename in a patch that introduced this function, there
    is no need to split such changes between two patches. See also my
    request to rename and generalize it a bit.

    > {
    >
    > size_t prefix_len = strlen(prefix);
    > @@ -5149,9 +5149,9 @@ int libbpf_find_vmlinux_btf_id(const char *name,
    > }
    >

    [...]

    >
    > +
    > +static int bpf_link__destroy_lsm(struct bpf_link *link)
    > +{
    > + struct bpf_link_lsm *ll = container_of(link, struct bpf_link_lsm, link);

    struct bpf_link link being a first field is a requirement for
    bpf_link, so you don't need container_of, just cast link to your type.

    > + char errmsg[STRERR_BUFSIZE];
    > + int ret;
    > +
    > + ret = bpf_prog_detach2(ll->prog_fd, ll->hook_fd, BPF_LSM_MAC);
    > + if (ret < 0) {
    > + ret = -errno;
    > + pr_warn("failed to detach from hook: %s\n",
    > + libbpf_strerror_r(ret, errmsg, sizeof(errmsg)));
    > + return ret;
    > + }
    > + close(ll->hook_fd);
    > + return 0;
    > +}
    > +
    > +static const char *__lsm_hook_name(const char *title)
    > +{
    > +
    > + int i;
    > +
    > + if (!title)
    > + return ERR_PTR(-EINVAL);
    > +
    > + for (i = 0; i < ARRAY_SIZE(section_names); i++) {

    section_names have been renamed to section_defs a while ago, please rebase

    > + if (section_names[i].prog_type != BPF_PROG_TYPE_LSM)
    > + continue;
    > +

    [...]

    \
     
     \ /
      Last update: 2019-12-24 07:45    [W:4.074 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site