Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso...
[firefly-linux-kernel-4.4.55.git] / net / sched / cls_bpf.c
index 1002a8226281ba6439b13c7a65c2b7e91945b539..8e3cf49118e3a2297214de12313bb499cbfe9054 100644 (file)
@@ -46,11 +46,6 @@ static const struct nla_policy bpf_policy[TCA_BPF_MAX + 1] = {
                                    .len = sizeof(struct sock_filter) * BPF_MAXINSNS },
 };
 
-static const struct tcf_ext_map bpf_ext_map = {
-       .action = TCA_BPF_ACT,
-       .police = TCA_BPF_POLICE,
-};
-
 static int cls_bpf_classify(struct sk_buff *skb, const struct tcf_proto *tp,
                            struct tcf_result *res)
 {
@@ -174,7 +169,8 @@ static int cls_bpf_modify_existing(struct net *net, struct tcf_proto *tp,
        if (!tb[TCA_BPF_OPS_LEN] || !tb[TCA_BPF_OPS] || !tb[TCA_BPF_CLASSID])
                return -EINVAL;
 
-       ret = tcf_exts_validate(net, tp, tb, est, &exts, &bpf_ext_map);
+       tcf_exts_init(&exts, TCA_BPF_ACT, TCA_BPF_POLICE);
+       ret = tcf_exts_validate(net, tp, tb, est, &exts);
        if (ret < 0)
                return ret;
 
@@ -271,6 +267,7 @@ static int cls_bpf_change(struct net *net, struct sk_buff *in_skb,
        if (prog == NULL)
                return -ENOBUFS;
 
+       tcf_exts_init(&prog->exts, TCA_BPF_ACT, TCA_BPF_POLICE);
        if (handle == 0)
                prog->handle = cls_bpf_grab_new_handle(tp, head);
        else
@@ -298,7 +295,7 @@ errout:
        return ret;
 }
 
-static int cls_bpf_dump(struct tcf_proto *tp, unsigned long fh,
+static int cls_bpf_dump(struct net *net, struct tcf_proto *tp, unsigned long fh,
                        struct sk_buff *skb, struct tcmsg *tm)
 {
        struct cls_bpf_prog *prog = (struct cls_bpf_prog *) fh;
@@ -323,14 +320,14 @@ static int cls_bpf_dump(struct tcf_proto *tp, unsigned long fh,
        if (nla == NULL)
                goto nla_put_failure;
 
-        memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla));
+       memcpy(nla_data(nla), prog->bpf_ops, nla_len(nla));
 
-       if (tcf_exts_dump(skb, &prog->exts, &bpf_ext_map) < 0)
+       if (tcf_exts_dump(skb, &prog->exts) < 0)
                goto nla_put_failure;
 
        nla_nest_end(skb, nest);
 
-       if (tcf_exts_dump_stats(skb, &prog->exts, &bpf_ext_map) < 0)
+       if (tcf_exts_dump_stats(skb, &prog->exts) < 0)
                goto nla_put_failure;
 
        return skb->len;