return ret;
 }
 
-static inline __be16 get_protocol(struct sk_buff *skb)
-{
-       __be16 protocol;
-
-       if (skb->protocol == htons(ETH_P_8021Q))
-               protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto;
-       else
-               protocol = skb->protocol;
-
-       return protocol;
-}
-
 static bool rtl8169_tso_csum_v1(struct rtl8169_private *tp,
                                struct sk_buff *skb, u32 *opts)
 {
                        return false;
                }
 
-               switch (get_protocol(skb)) {
+               switch (vlan_get_protocol(skb)) {
                case htons(ETH_P_IP):
                        opts[0] |= TD1_GTSENV4;
                        break;
                        return false;
                }
 
-               switch (get_protocol(skb)) {
+               switch (vlan_get_protocol(skb)) {
                case htons(ETH_P_IP):
                        opts[1] |= TD1_IPv4_CS;
                        ip_protocol = ip_hdr(skb)->protocol;