diff mbox series

[net-next,v2,12/13] r8152: use new helper tcp_v6_gso_csum_prep

Message ID 1dd1668a-b3c6-d441-681d-6cbe3ab22fa4@gmail.com
State Accepted
Delegated to: David Miller
Headers show
Series net: core: add helper tcp_v6_gso_csum_prep | expand

Commit Message

Heiner Kallweit Feb. 18, 2020, 8:12 p.m. UTC
Use new helper tcp_v6_gso_csum_prep in additional network drivers.

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
 drivers/net/usb/r8152.c | 26 ++------------------------
 1 file changed, 2 insertions(+), 24 deletions(-)

Comments

Hayes Wang Feb. 19, 2020, 9:48 a.m. UTC | #1
Heiner Kallweit [mailto:hkallweit1@gmail.com]
> Sent: Wednesday, February 19, 2020 4:13 AM
> Subject: [PATCH net-next v2 12/13] r8152: use new helper
> tcp_v6_gso_csum_prep
> 
> Use new helper tcp_v6_gso_csum_prep in additional network drivers.
> 
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>

Acked-by: Hayes Wang <hayeswang@realtek.com>

Best Regards,
Hayes
diff mbox series

Patch

diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
index 78ddbaf64..709578f4d 100644
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
@@ -1948,29 +1948,6 @@  static void r8152_csum_workaround(struct r8152 *tp, struct sk_buff *skb,
 	}
 }
 
-/* msdn_giant_send_check()
- * According to the document of microsoft, the TCP Pseudo Header excludes the
- * packet length for IPv6 TCP large packets.
- */
-static int msdn_giant_send_check(struct sk_buff *skb)
-{
-	const struct ipv6hdr *ipv6h;
-	struct tcphdr *th;
-	int ret;
-
-	ret = skb_cow_head(skb, 0);
-	if (ret)
-		return ret;
-
-	ipv6h = ipv6_hdr(skb);
-	th = tcp_hdr(skb);
-
-	th->check = 0;
-	th->check = ~tcp_v6_check(0, &ipv6h->saddr, &ipv6h->daddr, 0);
-
-	return ret;
-}
-
 static inline void rtl_tx_vlan_tag(struct tx_desc *desc, struct sk_buff *skb)
 {
 	if (skb_vlan_tag_present(skb)) {
@@ -2016,10 +1993,11 @@  static int r8152_tx_csum(struct r8152 *tp, struct tx_desc *desc,
 			break;
 
 		case htons(ETH_P_IPV6):
-			if (msdn_giant_send_check(skb)) {
+			if (skb_cow_head(skb, 0)) {
 				ret = TX_CSUM_TSO;
 				goto unavailable;
 			}
+			tcp_v6_gso_csum_prep(skb);
 			opts1 |= GTSENDV6;
 			break;