diff options
| -rw-r--r-- | include/net/sch_generic.h | 3 | ||||
| -rw-r--r-- | net/sched/cls_api.c | 2 | ||||
| -rw-r--r-- | net/sched/cls_basic.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_bpf.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_cgroup.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_flow.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_flower.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_fw.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_matchall.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_route.c | 3 | ||||
| -rw-r--r-- | net/sched/cls_rsvp.h | 3 | ||||
| -rw-r--r-- | net/sched/cls_tcindex.c | 5 | ||||
| -rw-r--r-- | net/sched/cls_u32.c | 3 |
13 files changed, 26 insertions, 14 deletions
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index ee398bcd46e7..cd1be1f25c36 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h | |||
| @@ -242,7 +242,8 @@ struct tcf_proto_ops { | |||
| 242 | void **, bool, | 242 | void **, bool, |
| 243 | struct netlink_ext_ack *); | 243 | struct netlink_ext_ack *); |
| 244 | int (*delete)(struct tcf_proto *tp, void *arg, | 244 | int (*delete)(struct tcf_proto *tp, void *arg, |
| 245 | bool *last); | 245 | bool *last, |
| 246 | struct netlink_ext_ack *); | ||
| 246 | void (*walk)(struct tcf_proto*, struct tcf_walker *arg); | 247 | void (*walk)(struct tcf_proto*, struct tcf_walker *arg); |
| 247 | void (*bind_class)(void *, u32, unsigned long); | 248 | void (*bind_class)(void *, u32, unsigned long); |
| 248 | 249 | ||
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index f365970dc68c..f5d293416f46 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c | |||
| @@ -955,7 +955,7 @@ static int tfilter_del_notify(struct net *net, struct sk_buff *oskb, | |||
| 955 | return -EINVAL; | 955 | return -EINVAL; |
| 956 | } | 956 | } |
| 957 | 957 | ||
| 958 | err = tp->ops->delete(tp, fh, last); | 958 | err = tp->ops->delete(tp, fh, last, extack); |
| 959 | if (err) { | 959 | if (err) { |
| 960 | kfree_skb(skb); | 960 | kfree_skb(skb); |
| 961 | return err; | 961 | return err; |
diff --git a/net/sched/cls_basic.c b/net/sched/cls_basic.c index b7bcf67641bf..6088be65d167 100644 --- a/net/sched/cls_basic.c +++ b/net/sched/cls_basic.c | |||
| @@ -130,7 +130,8 @@ static void basic_destroy(struct tcf_proto *tp) | |||
| 130 | kfree_rcu(head, rcu); | 130 | kfree_rcu(head, rcu); |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | static int basic_delete(struct tcf_proto *tp, void *arg, bool *last) | 133 | static int basic_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 134 | struct netlink_ext_ack *extack) | ||
| 134 | { | 135 | { |
| 135 | struct basic_head *head = rtnl_dereference(tp->root); | 136 | struct basic_head *head = rtnl_dereference(tp->root); |
| 136 | struct basic_filter *f = arg; | 137 | struct basic_filter *f = arg; |
diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c index c86072779b0a..fc024fc3ec2f 100644 --- a/net/sched/cls_bpf.c +++ b/net/sched/cls_bpf.c | |||
| @@ -295,7 +295,8 @@ static void __cls_bpf_delete(struct tcf_proto *tp, struct cls_bpf_prog *prog) | |||
| 295 | __cls_bpf_delete_prog(prog); | 295 | __cls_bpf_delete_prog(prog); |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | static int cls_bpf_delete(struct tcf_proto *tp, void *arg, bool *last) | 298 | static int cls_bpf_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 299 | struct netlink_ext_ack *extack) | ||
| 299 | { | 300 | { |
| 300 | struct cls_bpf_head *head = rtnl_dereference(tp->root); | 301 | struct cls_bpf_head *head = rtnl_dereference(tp->root); |
| 301 | 302 | ||
diff --git a/net/sched/cls_cgroup.c b/net/sched/cls_cgroup.c index aaafcf6965f7..1b54fbfca414 100644 --- a/net/sched/cls_cgroup.c +++ b/net/sched/cls_cgroup.c | |||
| @@ -156,7 +156,8 @@ static void cls_cgroup_destroy(struct tcf_proto *tp) | |||
| 156 | } | 156 | } |
| 157 | } | 157 | } |
| 158 | 158 | ||
| 159 | static int cls_cgroup_delete(struct tcf_proto *tp, void *arg, bool *last) | 159 | static int cls_cgroup_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 160 | struct netlink_ext_ack *extack) | ||
| 160 | { | 161 | { |
| 161 | return -EOPNOTSUPP; | 162 | return -EOPNOTSUPP; |
| 162 | } | 163 | } |
diff --git a/net/sched/cls_flow.c b/net/sched/cls_flow.c index 07816133cbb9..64c24b488058 100644 --- a/net/sched/cls_flow.c +++ b/net/sched/cls_flow.c | |||
| @@ -575,7 +575,8 @@ err1: | |||
| 575 | return err; | 575 | return err; |
| 576 | } | 576 | } |
| 577 | 577 | ||
| 578 | static int flow_delete(struct tcf_proto *tp, void *arg, bool *last) | 578 | static int flow_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 579 | struct netlink_ext_ack *extack) | ||
| 579 | { | 580 | { |
| 580 | struct flow_head *head = rtnl_dereference(tp->root); | 581 | struct flow_head *head = rtnl_dereference(tp->root); |
| 581 | struct flow_filter *f = arg; | 582 | struct flow_filter *f = arg; |
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 8235ed9143c4..50145b873ff1 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c | |||
| @@ -985,7 +985,8 @@ errout_tb: | |||
| 985 | return err; | 985 | return err; |
| 986 | } | 986 | } |
| 987 | 987 | ||
| 988 | static int fl_delete(struct tcf_proto *tp, void *arg, bool *last) | 988 | static int fl_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 989 | struct netlink_ext_ack *extack) | ||
| 989 | { | 990 | { |
| 990 | struct cls_fl_head *head = rtnl_dereference(tp->root); | 991 | struct cls_fl_head *head = rtnl_dereference(tp->root); |
| 991 | struct cls_fl_filter *f = arg; | 992 | struct cls_fl_filter *f = arg; |
diff --git a/net/sched/cls_fw.c b/net/sched/cls_fw.c index 72a924a38753..bd21ed83eb07 100644 --- a/net/sched/cls_fw.c +++ b/net/sched/cls_fw.c | |||
| @@ -172,7 +172,8 @@ static void fw_destroy(struct tcf_proto *tp) | |||
| 172 | kfree_rcu(head, rcu); | 172 | kfree_rcu(head, rcu); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | static int fw_delete(struct tcf_proto *tp, void *arg, bool *last) | 175 | static int fw_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 176 | struct netlink_ext_ack *extack) | ||
| 176 | { | 177 | { |
| 177 | struct fw_head *head = rtnl_dereference(tp->root); | 178 | struct fw_head *head = rtnl_dereference(tp->root); |
| 178 | struct fw_filter *f = arg; | 179 | struct fw_filter *f = arg; |
diff --git a/net/sched/cls_matchall.c b/net/sched/cls_matchall.c index 9a0901ee6b74..f67d3d7fcf40 100644 --- a/net/sched/cls_matchall.c +++ b/net/sched/cls_matchall.c | |||
| @@ -225,7 +225,8 @@ err_exts_init: | |||
| 225 | return err; | 225 | return err; |
| 226 | } | 226 | } |
| 227 | 227 | ||
| 228 | static int mall_delete(struct tcf_proto *tp, void *arg, bool *last) | 228 | static int mall_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 229 | struct netlink_ext_ack *extack) | ||
| 229 | { | 230 | { |
| 230 | return -EOPNOTSUPP; | 231 | return -EOPNOTSUPP; |
| 231 | } | 232 | } |
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c index 92d683851cb0..55467c30d524 100644 --- a/net/sched/cls_route.c +++ b/net/sched/cls_route.c | |||
| @@ -316,7 +316,8 @@ static void route4_destroy(struct tcf_proto *tp) | |||
| 316 | kfree_rcu(head, rcu); | 316 | kfree_rcu(head, rcu); |
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | static int route4_delete(struct tcf_proto *tp, void *arg, bool *last) | 319 | static int route4_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 320 | struct netlink_ext_ack *extack) | ||
| 320 | { | 321 | { |
| 321 | struct route4_head *head = rtnl_dereference(tp->root); | 322 | struct route4_head *head = rtnl_dereference(tp->root); |
| 322 | struct route4_filter *f = arg; | 323 | struct route4_filter *f = arg; |
diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h index c27d23694002..5cc0df690cff 100644 --- a/net/sched/cls_rsvp.h +++ b/net/sched/cls_rsvp.h | |||
| @@ -350,7 +350,8 @@ static void rsvp_destroy(struct tcf_proto *tp) | |||
| 350 | kfree_rcu(data, rcu); | 350 | kfree_rcu(data, rcu); |
| 351 | } | 351 | } |
| 352 | 352 | ||
| 353 | static int rsvp_delete(struct tcf_proto *tp, void *arg, bool *last) | 353 | static int rsvp_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 354 | struct netlink_ext_ack *extack) | ||
| 354 | { | 355 | { |
| 355 | struct rsvp_head *head = rtnl_dereference(tp->root); | 356 | struct rsvp_head *head = rtnl_dereference(tp->root); |
| 356 | struct rsvp_filter *nfp, *f = arg; | 357 | struct rsvp_filter *nfp, *f = arg; |
diff --git a/net/sched/cls_tcindex.c b/net/sched/cls_tcindex.c index 9d6621caa92f..01a163e0b6aa 100644 --- a/net/sched/cls_tcindex.c +++ b/net/sched/cls_tcindex.c | |||
| @@ -193,7 +193,8 @@ static void tcindex_destroy_fexts(struct rcu_head *head) | |||
| 193 | tcf_queue_work(&f->work); | 193 | tcf_queue_work(&f->work); |
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | static int tcindex_delete(struct tcf_proto *tp, void *arg, bool *last) | 196 | static int tcindex_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 197 | struct netlink_ext_ack *extack) | ||
| 197 | { | 198 | { |
| 198 | struct tcindex_data *p = rtnl_dereference(tp->root); | 199 | struct tcindex_data *p = rtnl_dereference(tp->root); |
| 199 | struct tcindex_filter_result *r = arg; | 200 | struct tcindex_filter_result *r = arg; |
| @@ -246,7 +247,7 @@ static int tcindex_destroy_element(struct tcf_proto *tp, | |||
| 246 | { | 247 | { |
| 247 | bool last; | 248 | bool last; |
| 248 | 249 | ||
| 249 | return tcindex_delete(tp, arg, &last); | 250 | return tcindex_delete(tp, arg, &last, NULL); |
| 250 | } | 251 | } |
| 251 | 252 | ||
| 252 | static void __tcindex_destroy(struct rcu_head *head) | 253 | static void __tcindex_destroy(struct rcu_head *head) |
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 933058bbd0a9..7f772da8e627 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c | |||
| @@ -672,7 +672,8 @@ static void u32_destroy(struct tcf_proto *tp) | |||
| 672 | tp->data = NULL; | 672 | tp->data = NULL; |
| 673 | } | 673 | } |
| 674 | 674 | ||
| 675 | static int u32_delete(struct tcf_proto *tp, void *arg, bool *last) | 675 | static int u32_delete(struct tcf_proto *tp, void *arg, bool *last, |
| 676 | struct netlink_ext_ack *extack) | ||
| 676 | { | 677 | { |
| 677 | struct tc_u_hnode *ht = arg; | 678 | struct tc_u_hnode *ht = arg; |
| 678 | struct tc_u_hnode *root_ht = rtnl_dereference(tp->root); | 679 | struct tc_u_hnode *root_ht = rtnl_dereference(tp->root); |
