Date: Tue, 7 Feb 2006 01:11:41 +0300 From: Oleg Bulyzhin <oleg@FreeBSD.org> To: Alan Cox <alc@cs.rice.edu> Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/bge if_bge.c Message-ID: <20060206221141.GA57775@lath.rinet.ru> In-Reply-To: <20060205235817.GQ5499@cs.rice.edu> References: <200602020958.k129wWtc066930@repoman.freebsd.org> <20060202100637.GB24350@lath.rinet.ru> <20060205235817.GQ5499@cs.rice.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
--LQksG6bCIzRHxTLp Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sun, Feb 05, 2006 at 05:58:17PM -0600, Alan Cox wrote: > On Thu, Feb 02, 2006 at 01:06:37PM +0300, Oleg Bulyzhin wrote: > > On Thu, Feb 02, 2006 at 09:58:32AM +0000, Oleg Bulyzhin wrote: > > > oleg 2006-02-02 09:58:32 UTC > > > > > > FreeBSD src repository > > > > > > Modified files: > > > sys/dev/bge if_bge.c > > > Log: > > > Enable 'complete' rx checksum offloading (i.e. let chip calculate checksums > > > with pseudo header for tcp/udp packets). This could save one in_pseudo() call > > > per incoming tcp/udp packet. > > > > > > Approved by: glebius (mentor) > > > MFC after: 3 weeks > > > > > > Revision Changes Path > > > 1.123 +3 -2 src/sys/dev/bge/if_bge.c > > > > Side effect is workaround for ipfilter bug: > > http://lists.freebsd.org/pipermail/freebsd-stable/2006-January/021961.html > > http://lists.freebsd.org/pipermail/freebsd-stable/2006-February/022149.html > > > > Unfortunately, it also breaks NFS over UDP. Let me know if you need > details. > > Alan Fix attached. It's not bge problem it's five years old bug in ip_reass(). -- Oleg. --LQksG6bCIzRHxTLp Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="ip_reass.diff" Index: ip_input.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/ip_input.c,v retrieving revision 1.314 diff -u -r1.314 ip_input.c --- ip_input.c 2 Feb 2006 03:13:15 -0000 1.314 +++ ip_input.c 6 Feb 2006 21:44:45 -0000 @@ -982,10 +982,12 @@ nq = q->m_nextpkt; q->m_nextpkt = NULL; for (q = nq; q != NULL; q = nq) { + int sum; nq = q->m_nextpkt; q->m_nextpkt = NULL; m->m_pkthdr.csum_flags &= q->m_pkthdr.csum_flags; - m->m_pkthdr.csum_data += q->m_pkthdr.csum_data; + sum = m->m_pkthdr.csum_data + q->m_pkthdr.csum_data; + m->m_pkthdr.csum_data = (sum & 0xffff) + (sum >> 16); m_cat(m, q); } #ifdef MAC --LQksG6bCIzRHxTLp--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060206221141.GA57775>