summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authorgallatin <gallatin@FreeBSD.org>2013-02-21 17:00:35 +0000
committergallatin <gallatin@FreeBSD.org>2013-02-21 17:00:35 +0000
commit8189336983a91b237133af95f83f52899a8e1094 (patch)
tree790cad46454a6db36289881fc32c9530af62ca55 /sys/netinet
parenta47126727ba4a8d6c9e28c9e29d6ef6cae4b9587 (diff)
downloadFreeBSD-src-8189336983a91b237133af95f83f52899a8e1094.zip
FreeBSD-src-8189336983a91b237133af95f83f52899a8e1094.tar.gz
Fix tcp_lro_rx_ipv4() for drivers that do not set CSUM_IP_CHECKED.
Specifcially, in_cksum_hdr() returns 0 (not 0xffff) when the IPv4 checksum is correct. Without this fix, the tcp_lro code will reject good IPv4 traffic from drivers that do not implement IPv4 header harder csum offload. Sponsored by: Myricom Inc. MFC after: 7 days
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/tcp_lro.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/tcp_lro.c b/sys/netinet/tcp_lro.c
index 3718e4d..032d47c 100644
--- a/sys/netinet/tcp_lro.c
+++ b/sys/netinet/tcp_lro.c
@@ -333,7 +333,7 @@ tcp_lro_rx_ipv4(struct lro_ctrl *lc, struct mbuf *m, struct ip *ip4,
}
} else {
csum = in_cksum_hdr(ip4);
- if (__predict_false((csum ^ 0xffff) != 0)) {
+ if (__predict_false((csum) != 0)) {
lc->lro_bad_csum++;
return (TCP_LRO_CANNOT);
}
OpenPOWER on IntegriCloud