make the icmp stack use the fake offload engine.
prevents double cksumming in some cases and happens to fix a bug in an
obscure, constructed case.

Index: ip_icmp.c
===================================================================
RCS file: /cvs/src/sys/netinet/ip_icmp.c,v
retrieving revision 1.110
diff -u -p -r1.110 ip_icmp.c
--- ip_icmp.c   17 Nov 2013 10:07:32 -0000      1.110
+++ ip_icmp.c   20 Nov 2013 07:47:49 -0000
@@ -830,7 +830,7 @@ icmp_send(struct mbuf *m, struct mbuf *o
        hlen = ip->ip_hl << 2;
        icp = (struct icmp *)(mtod(m, caddr_t) + hlen);
        icp->icmp_cksum = 0;
-       icp->icmp_cksum = in4_cksum(m, 0, hlen, ntohs(ip->ip_len) - hlen);
+       m->m_pkthdr.csum_flags |= M_ICMP_CSUM_OUT;
 #ifdef ICMPPRINTFS
        if (icmpprintfs) {
                char dst[INET_ADDRSTRLEN], src[INET_ADDRSTRLEN];

Reply via email to