|
|
@@ -960,7 +960,6 @@ static int tcf_block_cb_call(struct tcf_block *block, enum tc_setup_type type,
|
|
|
int tcf_classify(struct sk_buff *skb, const struct tcf_proto *tp,
|
|
|
struct tcf_result *res, bool compat_mode)
|
|
|
{
|
|
|
- __be16 protocol = tc_skb_protocol(skb);
|
|
|
#ifdef CONFIG_NET_CLS_ACT
|
|
|
const int max_reclassify_loop = 4;
|
|
|
const struct tcf_proto *orig_tp = tp;
|
|
|
@@ -970,6 +969,7 @@ int tcf_classify(struct sk_buff *skb, const struct tcf_proto *tp,
|
|
|
reclassify:
|
|
|
#endif
|
|
|
for (; tp; tp = rcu_dereference_bh(tp->next)) {
|
|
|
+ __be16 protocol = tc_skb_protocol(skb);
|
|
|
int err;
|
|
|
|
|
|
if (tp->protocol != protocol &&
|
|
|
@@ -1002,7 +1002,6 @@ reset:
|
|
|
}
|
|
|
|
|
|
tp = first_tp;
|
|
|
- protocol = tc_skb_protocol(skb);
|
|
|
goto reclassify;
|
|
|
#endif
|
|
|
}
|