]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - kernel/bpf/syscall.c
Merge remote-tracking branch 'tip/auto-latest'
[karo-tx-linux.git] / kernel / bpf / syscall.c
index 504c10b990efe9c21d32e33f01747e99294f69a1..3bae6c59191483d48eb5934ad216cc952abaf9b1 100644 (file)
@@ -355,10 +355,11 @@ static int find_prog_type(enum bpf_prog_type type, struct bpf_prog *prog)
        list_for_each_entry(tl, &bpf_prog_types, list_node) {
                if (tl->type == type) {
                        prog->aux->ops = tl->ops;
-                       prog->aux->prog_type = type;
+                       prog->type = type;
                        return 0;
                }
        }
+
        return -EINVAL;
 }
 
@@ -419,6 +420,7 @@ void bpf_prog_put(struct bpf_prog *prog)
                bpf_prog_free(prog);
        }
 }
+EXPORT_SYMBOL_GPL(bpf_prog_put);
 
 static int bpf_prog_release(struct inode *inode, struct file *filp)
 {
@@ -466,6 +468,7 @@ struct bpf_prog *bpf_prog_get(u32 ufd)
        fdput(f);
        return prog;
 }
+EXPORT_SYMBOL_GPL(bpf_prog_get);
 
 /* last field in 'union bpf_attr' used by this command */
 #define        BPF_PROG_LOAD_LAST_FIELD kern_version
@@ -513,7 +516,7 @@ static int bpf_prog_load(union bpf_attr *attr)
        prog->jited = false;
 
        atomic_set(&prog->aux->refcnt, 1);
-       prog->aux->is_gpl_compatible = is_gpl;
+       prog->gpl_compatible = is_gpl;
 
        /* find program type: socket_filter vs tracing_filter */
        err = find_prog_type(type, prog);
@@ -521,8 +524,7 @@ static int bpf_prog_load(union bpf_attr *attr)
                goto free_prog;
 
        /* run eBPF verifier */
-       err = bpf_check(prog, attr);
-
+       err = bpf_check(&prog, attr);
        if (err < 0)
                goto free_used_maps;
 
@@ -533,7 +535,6 @@ static int bpf_prog_load(union bpf_attr *attr)
        bpf_prog_select_runtime(prog);
 
        err = anon_inode_getfd("bpf-prog", &bpf_prog_fops, prog, O_RDWR | O_CLOEXEC);
-
        if (err < 0)
                /* failed to allocate fd */
                goto free_used_maps;