linux/security/bpf/hooks.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2
   3/*
   4 * Copyright (C) 2020 Google LLC.
   5 */
   6#include <linux/lsm_hooks.h>
   7#include <linux/bpf_lsm.h>
   8
   9static struct security_hook_list bpf_lsm_hooks[] __lsm_ro_after_init = {
  10        #define LSM_HOOK(RET, DEFAULT, NAME, ...) \
  11        LSM_HOOK_INIT(NAME, bpf_lsm_##NAME),
  12        #include <linux/lsm_hook_defs.h>
  13        #undef LSM_HOOK
  14        LSM_HOOK_INIT(inode_free_security, bpf_inode_storage_free),
  15        LSM_HOOK_INIT(task_free, bpf_task_storage_free),
  16};
  17
  18static int __init bpf_lsm_init(void)
  19{
  20        security_add_hooks(bpf_lsm_hooks, ARRAY_SIZE(bpf_lsm_hooks), "bpf");
  21        pr_info("LSM support for eBPF active\n");
  22        return 0;
  23}
  24
  25struct lsm_blob_sizes bpf_lsm_blob_sizes __lsm_ro_after_init = {
  26        .lbs_inode = sizeof(struct bpf_storage_blob),
  27        .lbs_task = sizeof(struct bpf_storage_blob),
  28};
  29
  30DEFINE_LSM(bpf) = {
  31        .name = "bpf",
  32        .init = bpf_lsm_init,
  33        .blobs = &bpf_lsm_blob_sizes
  34};
  35