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];