net: sched: use tc_cls_bind_class() in filter
authorZhengchao Shao <shaozhengchao@huawei.com>
Tue, 27 Sep 2022 12:48:55 +0000 (20:48 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 2 Oct 2022 15:07:17 +0000 (16:07 +0100)
Use tc_cls_bind_class() in filter.

Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/cls_basic.c
net/sched/cls_bpf.c
net/sched/cls_flower.c
net/sched/cls_fw.c
net/sched/cls_matchall.c
net/sched/cls_route.c
net/sched/cls_rsvp.h
net/sched/cls_tcindex.c
net/sched/cls_u32.c

index d9fbaa0..d229ce9 100644 (file)
@@ -261,12 +261,7 @@ static void basic_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct basic_filter *f = fh;
 
-       if (f && f->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &f->res, base);
-               else
-                       __tcf_unbind_filter(q, &f->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &f->res, base);
 }
 
 static int basic_dump(struct net *net, struct tcf_proto *tp, void *fh,
index 938be14..bc317b3 100644 (file)
@@ -635,12 +635,7 @@ static void cls_bpf_bind_class(void *fh, u32 classid, unsigned long cl,
 {
        struct cls_bpf_prog *prog = fh;
 
-       if (prog && prog->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &prog->res, base);
-               else
-                       __tcf_unbind_filter(q, &prog->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &prog->res, base);
 }
 
 static void cls_bpf_walk(struct tcf_proto *tp, struct tcf_walker *arg,
index 22d32b8..25bc57e 100644 (file)
@@ -3405,12 +3405,7 @@ static void fl_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct cls_fl_filter *f = fh;
 
-       if (f && f->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &f->res, base);
-               else
-                       __tcf_unbind_filter(q, &f->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &f->res, base);
 }
 
 static bool fl_delete_empty(struct tcf_proto *tp)
index fa66191..a32351d 100644 (file)
@@ -416,12 +416,7 @@ static void fw_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct fw_filter *f = fh;
 
-       if (f && f->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &f->res, base);
-               else
-                       __tcf_unbind_filter(q, &f->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &f->res, base);
 }
 
 static struct tcf_proto_ops cls_fw_ops __read_mostly = {
index 63b99ff..39a5d9c 100644 (file)
@@ -394,12 +394,7 @@ static void mall_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct cls_mall_head *head = fh;
 
-       if (head && head->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &head->res, base);
-               else
-                       __tcf_unbind_filter(q, &head->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &head->res, base);
 }
 
 static struct tcf_proto_ops cls_mall_ops __read_mostly = {
index 17bb04a..9e43b92 100644 (file)
@@ -649,12 +649,7 @@ static void route4_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct route4_filter *f = fh;
 
-       if (f && f->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &f->res, base);
-               else
-                       __tcf_unbind_filter(q, &f->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &f->res, base);
 }
 
 static struct tcf_proto_ops cls_route4_ops __read_mostly = {
index fb60f2c..b00a7db 100644 (file)
@@ -733,12 +733,7 @@ static void rsvp_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct rsvp_filter *f = fh;
 
-       if (f && f->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &f->res, base);
-               else
-                       __tcf_unbind_filter(q, &f->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &f->res, base);
 }
 
 static struct tcf_proto_ops RSVP_OPS __read_mostly = {
index a330760..1c9eeb9 100644 (file)
@@ -691,12 +691,7 @@ static void tcindex_bind_class(void *fh, u32 classid, unsigned long cl,
 {
        struct tcindex_filter_result *r = fh;
 
-       if (r && r->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &r->res, base);
-               else
-                       __tcf_unbind_filter(q, &r->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &r->res, base);
 }
 
 static struct tcf_proto_ops cls_tcindex_ops __read_mostly = {
index 0b3d909..34d25f7 100644 (file)
@@ -1250,12 +1250,7 @@ static void u32_bind_class(void *fh, u32 classid, unsigned long cl, void *q,
 {
        struct tc_u_knode *n = fh;
 
-       if (n && n->res.classid == classid) {
-               if (cl)
-                       __tcf_bind_filter(q, &n->res, base);
-               else
-                       __tcf_unbind_filter(q, &n->res);
-       }
+       tc_cls_bind_class(classid, cl, q, &n->res, base);
 }
 
 static int u32_dump(struct net *net, struct tcf_proto *tp, void *fh,