net: sgi: ioc3-eth: use csum_fold
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>
This commit is contained in:
parent
ed870f6a7a
commit
8dff19a6dc
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue