]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: sgi: ioc3-eth: use csum_fold
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Fri, 30 Aug 2019 09:25:35 +0000 (11:25 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Aug 2019 20:54:36 +0000 (13:54 -0700)
replace open coded checksum folding by csum_fold.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sgi/ioc3-eth.c

index ed8f997a3cec831ce17d21fe441f00eea12792d4..05f4b598114c9118b6335dbe5d6fb8cdfd925f0e 100644 (file)
@@ -1391,16 +1391,12 @@ static netdev_tx_t ioc3_start_xmit(struct sk_buff *skb, struct net_device *dev)
                /* Sum up dest addr, src addr and protocol  */
                ehsum = eh[0] + eh[1] + eh[2] + eh[3] + eh[4] + eh[5] + eh[6];
 
-               /* Fold ehsum.  can't use csum_fold which negates also ...  */
-               ehsum = (ehsum & 0xffff) + (ehsum >> 16);
-               ehsum = (ehsum & 0xffff) + (ehsum >> 16);
-
                /* Skip IP header; it's sum is always zero and was
                 * already filled in by ip_output.c
                 */
                csum = csum_tcpudp_nofold(ih->saddr, ih->daddr,
                                          ih->tot_len - (ih->ihl << 2),
-                                         proto, 0xffff ^ ehsum);
+                                         proto, csum_fold(ehsum));
 
                csum = (csum & 0xffff) + (csum >> 16);  /* Fold again */
                csum = (csum & 0xffff) + (csum >> 16);