diff options
Diffstat (limited to 'net/sched/cls_api.c')
-rw-r--r-- | net/sched/cls_api.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 9a04b981bc13..9d71d4ded53b 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c | |||
@@ -141,7 +141,12 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n) | |||
141 | 141 | ||
142 | if ((n->nlmsg_type != RTM_GETTFILTER) && !capable(CAP_NET_ADMIN)) | 142 | if ((n->nlmsg_type != RTM_GETTFILTER) && !capable(CAP_NET_ADMIN)) |
143 | return -EPERM; | 143 | return -EPERM; |
144 | |||
144 | replay: | 145 | replay: |
146 | err = nlmsg_parse(n, sizeof(*t), tca, TCA_MAX, NULL); | ||
147 | if (err < 0) | ||
148 | return err; | ||
149 | |||
145 | t = nlmsg_data(n); | 150 | t = nlmsg_data(n); |
146 | protocol = TC_H_MIN(t->tcm_info); | 151 | protocol = TC_H_MIN(t->tcm_info); |
147 | prio = TC_H_MAJ(t->tcm_info); | 152 | prio = TC_H_MAJ(t->tcm_info); |
@@ -164,10 +169,6 @@ replay: | |||
164 | if (dev == NULL) | 169 | if (dev == NULL) |
165 | return -ENODEV; | 170 | return -ENODEV; |
166 | 171 | ||
167 | err = nlmsg_parse(n, sizeof(*t), tca, TCA_MAX, NULL); | ||
168 | if (err < 0) | ||
169 | return err; | ||
170 | |||
171 | /* Find qdisc */ | 172 | /* Find qdisc */ |
172 | if (!parent) { | 173 | if (!parent) { |
173 | q = dev->qdisc; | 174 | q = dev->qdisc; |