diff options
Diffstat (limited to 'net/sched/cls_rsvp.h')
| -rw-r--r-- | net/sched/cls_rsvp.h | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/net/sched/cls_rsvp.h b/net/sched/cls_rsvp.h index 252d8b05872..1020e233a5d 100644 --- a/net/sched/cls_rsvp.h +++ b/net/sched/cls_rsvp.h @@ -116,11 +116,6 @@ static inline unsigned int hash_src(__be32 *src)  	return h & 0xF;  } -static struct tcf_ext_map rsvp_ext_map = { -	.police = TCA_RSVP_POLICE, -	.action = TCA_RSVP_ACT -}; -  #define RSVP_APPLY_RESULT()				\  {							\  	int r = tcf_exts_exec(skb, &f->exts, res);	\ @@ -420,7 +415,7 @@ static int rsvp_change(struct net *net, struct sk_buff *in_skb,  		       struct tcf_proto *tp, unsigned long base,  		       u32 handle,  		       struct nlattr **tca, -		       unsigned long *arg) +		       unsigned long *arg, bool ovr)  {  	struct rsvp_head *data = tp->root;  	struct rsvp_filter *f, **fp; @@ -440,7 +435,8 @@ static int rsvp_change(struct net *net, struct sk_buff *in_skb,  	if (err < 0)  		return err; -	err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &e, &rsvp_ext_map); +	tcf_exts_init(&e, TCA_RSVP_ACT, TCA_RSVP_POLICE); +	err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &e, ovr);  	if (err < 0)  		return err; @@ -471,6 +467,7 @@ static int rsvp_change(struct net *net, struct sk_buff *in_skb,  	if (f == NULL)  		goto errout2; +	tcf_exts_init(&f->exts, TCA_RSVP_ACT, TCA_RSVP_POLICE);  	h2 = 16;  	if (tb[TCA_RSVP_SRC]) {  		memcpy(f->src, nla_data(tb[TCA_RSVP_SRC]), sizeof(f->src)); @@ -597,7 +594,7 @@ static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg)  	}  } -static int rsvp_dump(struct tcf_proto *tp, unsigned long fh, +static int rsvp_dump(struct net *net, struct tcf_proto *tp, unsigned long fh,  		     struct sk_buff *skb, struct tcmsg *t)  {  	struct rsvp_filter *f = (struct rsvp_filter *)fh; @@ -633,12 +630,12 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,  	    nla_put(skb, TCA_RSVP_SRC, sizeof(f->src), f->src))  		goto nla_put_failure; -	if (tcf_exts_dump(skb, &f->exts, &rsvp_ext_map) < 0) +	if (tcf_exts_dump(skb, &f->exts) < 0)  		goto nla_put_failure;  	nla_nest_end(skb, nest); -	if (tcf_exts_dump_stats(skb, &f->exts, &rsvp_ext_map) < 0) +	if (tcf_exts_dump_stats(skb, &f->exts) < 0)  		goto nla_put_failure;  	return skb->len;  | 
