@@ -4326,23 +4326,20 @@ static unsigned int rtl_last_frag_len(struct sk_buff *skb)
}
/* Workaround for hw issues with TSO on RTL8168evl */
-static netdev_features_t rtl8168evl_fix_tso(struct sk_buff *skb,
- netdev_features_t features)
+static void rtl8168evl_fix_tso(struct sk_buff *skb, netdev_features_t *features)
{
/* IPv4 header has options field */
if (vlan_get_protocol(skb) == htons(ETH_P_IP) &&
ip_hdrlen(skb) > sizeof(struct iphdr))
- features &= ~NETIF_F_ALL_TSO;
+ *features &= ~NETIF_F_ALL_TSO;
/* IPv4 TCP header has options field */
else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4 &&
tcp_hdrlen(skb) > sizeof(struct tcphdr))
- features &= ~NETIF_F_ALL_TSO;
+ *features &= ~NETIF_F_ALL_TSO;
else if (rtl_last_frag_len(skb) <= 6)
- features &= ~NETIF_F_ALL_TSO;
-
- return features;
+ *features &= ~NETIF_F_ALL_TSO;
}
static void rtl8169_features_check(struct sk_buff *skb, struct net_device *dev,
@@ -4353,7 +4350,7 @@ static void rtl8169_features_check(struct sk_buff *skb, struct net_device *dev,
if (skb_is_gso(skb)) {
if (tp->mac_version == RTL_GIGA_MAC_VER_34)
- *features = rtl8168evl_fix_tso(skb, *features);
+ rtl8168evl_fix_tso(skb, features);
if (transport_offset > GTTCPHO_MAX &&
rtl_chip_supports_csum_v2(tp))
For the origin type for netdev_features_t would be changed to be unsigned long * from u64, so changes the prototype of rtl8168evl_fix_tso for adaption. Signed-off-by: Jian Shen <shenjian15@huawei.com> --- drivers/net/ethernet/realtek/r8169_main.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)