diff options
Diffstat (limited to 'net/sched/cls_api.c')
| -rw-r--r-- | net/sched/cls_api.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c index 8ce2a0507970..e2b5cb2eb34e 100644 --- a/net/sched/cls_api.c +++ b/net/sched/cls_api.c | |||
| @@ -1277,7 +1277,6 @@ EXPORT_SYMBOL(tcf_block_cb_unregister); | |||
| 1277 | int tcf_classify(struct sk_buff *skb, const struct tcf_proto *tp, | 1277 | int tcf_classify(struct sk_buff *skb, const struct tcf_proto *tp, |
| 1278 | struct tcf_result *res, bool compat_mode) | 1278 | struct tcf_result *res, bool compat_mode) |
| 1279 | { | 1279 | { |
| 1280 | __be16 protocol = tc_skb_protocol(skb); | ||
| 1281 | #ifdef CONFIG_NET_CLS_ACT | 1280 | #ifdef CONFIG_NET_CLS_ACT |
| 1282 | const int max_reclassify_loop = 4; | 1281 | const int max_reclassify_loop = 4; |
| 1283 | const struct tcf_proto *orig_tp = tp; | 1282 | const struct tcf_proto *orig_tp = tp; |
| @@ -1287,6 +1286,7 @@ int tcf_classify(struct sk_buff *skb, const struct tcf_proto *tp, | |||
| 1287 | reclassify: | 1286 | reclassify: |
| 1288 | #endif | 1287 | #endif |
| 1289 | for (; tp; tp = rcu_dereference_bh(tp->next)) { | 1288 | for (; tp; tp = rcu_dereference_bh(tp->next)) { |
| 1289 | __be16 protocol = tc_skb_protocol(skb); | ||
| 1290 | int err; | 1290 | int err; |
| 1291 | 1291 | ||
| 1292 | if (tp->protocol != protocol && | 1292 | if (tp->protocol != protocol && |
| @@ -1319,7 +1319,6 @@ reset: | |||
| 1319 | } | 1319 | } |
| 1320 | 1320 | ||
| 1321 | tp = first_tp; | 1321 | tp = first_tp; |
| 1322 | protocol = tc_skb_protocol(skb); | ||
| 1323 | goto reclassify; | 1322 | goto reclassify; |
| 1324 | #endif | 1323 | #endif |
| 1325 | } | 1324 | } |
