+ action = READ_ONCE(ca->tcf_action);
+
+ wlen = skb_network_offset(skb);
-+ if (tc_skb_protocol(skb) == htons(ETH_P_IP)) {
++ if (skb_protocol(skb, true) == htons(ETH_P_IP)) {
+ wlen += sizeof(struct iphdr);
+ if (!pskb_may_pull(skb, wlen))
+ goto out;
+
+ proto = NFPROTO_IPV4;
-+ } else if (tc_skb_protocol(skb) == htons(ETH_P_IPV6)) {
++ } else if (skb_protocol(skb, true) == htons(ETH_P_IPV6)) {
+ wlen += sizeof(struct ipv6hdr);
+ if (!pskb_may_pull(skb, wlen))
+ goto out;