Merge tag 'mlx5-updates-2021-04-21' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / kernel / bpf / syscall.c
index c859bc4..fd49519 100644 (file)
@@ -854,6 +854,11 @@ static int map_create(union bpf_attr *attr)
                        err = PTR_ERR(btf);
                        goto free_map;
                }
+               if (btf_is_kernel(btf)) {
+                       btf_put(btf);
+                       err = -EACCES;
+                       goto free_map;
+               }
                map->btf = btf;
 
                if (attr->btf_value_type_id) {
@@ -1689,7 +1694,9 @@ static void __bpf_prog_put_noref(struct bpf_prog *prog, bool deferred)
 {
        bpf_prog_kallsyms_del_all(prog);
        btf_put(prog->aux->btf);
-       bpf_prog_free_linfo(prog);
+       kvfree(prog->aux->jited_linfo);
+       kvfree(prog->aux->linfo);
+       kfree(prog->aux->kfunc_tab);
        if (prog->aux->attach_btf)
                btf_put(prog->aux->attach_btf);
 
@@ -2544,6 +2551,9 @@ static int bpf_tracing_link_fill_link_info(const struct bpf_link *link,
                container_of(link, struct bpf_tracing_link, link);
 
        info->tracing.attach_type = tr_link->attach_type;
+       bpf_trampoline_unpack_key(tr_link->trampoline->key,
+                                 &info->tracing.target_obj_id,
+                                 &info->tracing.target_btf_id);
 
        return 0;
 }
@@ -2941,6 +2951,7 @@ attach_type_to_prog_type(enum bpf_attach_type attach_type)
                return BPF_PROG_TYPE_SK_MSG;
        case BPF_SK_SKB_STREAM_PARSER:
        case BPF_SK_SKB_STREAM_VERDICT:
+       case BPF_SK_SKB_VERDICT:
                return BPF_PROG_TYPE_SK_SKB;
        case BPF_LIRC_MODE2:
                return BPF_PROG_TYPE_LIRC_MODE2;