diff options
Diffstat (limited to 'net/sched/act_api.c')
-rw-r--r-- | net/sched/act_api.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/net/sched/act_api.c b/net/sched/act_api.c index 249c61936ea0..8aebe8f6d271 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c | |||
@@ -165,7 +165,7 @@ int tcf_action_exec(struct sk_buff *skb, struct tc_action *act, | |||
165 | while ((a = act) != NULL) { | 165 | while ((a = act) != NULL) { |
166 | repeat: | 166 | repeat: |
167 | if (a->ops && a->ops->act) { | 167 | if (a->ops && a->ops->act) { |
168 | ret = a->ops->act(&skb, a); | 168 | ret = a->ops->act(&skb, a, res); |
169 | if (TC_MUNGED & skb->tc_verd) { | 169 | if (TC_MUNGED & skb->tc_verd) { |
170 | /* copied already, allow trampling */ | 170 | /* copied already, allow trampling */ |
171 | skb->tc_verd = SET_TC_OK2MUNGE(skb->tc_verd); | 171 | skb->tc_verd = SET_TC_OK2MUNGE(skb->tc_verd); |
@@ -179,11 +179,6 @@ repeat: | |||
179 | act = a->next; | 179 | act = a->next; |
180 | } | 180 | } |
181 | exec_done: | 181 | exec_done: |
182 | if (skb->tc_classid > 0) { | ||
183 | res->classid = skb->tc_classid; | ||
184 | res->class = 0; | ||
185 | skb->tc_classid = 0; | ||
186 | } | ||
187 | return ret; | 182 | return ret; |
188 | } | 183 | } |
189 | 184 | ||
@@ -598,7 +593,7 @@ static int tca_action_flush(struct rtattr *rta, struct nlmsghdr *n, u32 pid) | |||
598 | nlh->nlmsg_flags |= NLM_F_ROOT; | 593 | nlh->nlmsg_flags |= NLM_F_ROOT; |
599 | module_put(a->ops->owner); | 594 | module_put(a->ops->owner); |
600 | kfree(a); | 595 | kfree(a); |
601 | err = rtnetlink_send(skb, pid, RTMGRP_TC, n->nlmsg_flags&NLM_F_ECHO); | 596 | err = rtnetlink_send(skb, pid, RTNLGRP_TC, n->nlmsg_flags&NLM_F_ECHO); |
602 | if (err > 0) | 597 | if (err > 0) |
603 | return 0; | 598 | return 0; |
604 | 599 | ||
@@ -661,7 +656,7 @@ tca_action_gd(struct rtattr *rta, struct nlmsghdr *n, u32 pid, int event) | |||
661 | 656 | ||
662 | /* now do the delete */ | 657 | /* now do the delete */ |
663 | tcf_action_destroy(head, 0); | 658 | tcf_action_destroy(head, 0); |
664 | ret = rtnetlink_send(skb, pid, RTMGRP_TC, | 659 | ret = rtnetlink_send(skb, pid, RTNLGRP_TC, |
665 | n->nlmsg_flags&NLM_F_ECHO); | 660 | n->nlmsg_flags&NLM_F_ECHO); |
666 | if (ret > 0) | 661 | if (ret > 0) |
667 | return 0; | 662 | return 0; |
@@ -703,9 +698,9 @@ static int tcf_add_notify(struct tc_action *a, u32 pid, u32 seq, int event, | |||
703 | x->rta_len = skb->tail - (u8*)x; | 698 | x->rta_len = skb->tail - (u8*)x; |
704 | 699 | ||
705 | nlh->nlmsg_len = skb->tail - b; | 700 | nlh->nlmsg_len = skb->tail - b; |
706 | NETLINK_CB(skb).dst_groups = RTMGRP_TC; | 701 | NETLINK_CB(skb).dst_group = RTNLGRP_TC; |
707 | 702 | ||
708 | err = rtnetlink_send(skb, pid, RTMGRP_TC, flags&NLM_F_ECHO); | 703 | err = rtnetlink_send(skb, pid, RTNLGRP_TC, flags&NLM_F_ECHO); |
709 | if (err > 0) | 704 | if (err > 0) |
710 | err = 0; | 705 | err = 0; |
711 | return err; | 706 | return err; |