Date: Sun, 7 Oct 2012 23:39:41 +0400 From: Gleb Smirnoff <glebius@FreeBSD.org> To: David Wolfskill <david@catwhisker.org>, Michael Butler <imb@protected-networks.net> Cc: Garrett Cooper <yanegomi@gmail.com>, current@FreeBSD.org Subject: Re: Message "in_cksum_skip: out of data by ...." Message-ID: <20121007193941.GK34622@FreeBSD.org> In-Reply-To: <5071C118.40302@protected-networks.net> <20121007174331.GA2583@albert.catwhisker.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--A6N2fC+uXW/VQSAv Content-Type: text/plain; charset=koi8-r Content-Disposition: inline David and Michael, can you please build a kernel with attached patch and options KDB, and report what's the trace is. Unfortunately my iwn(4) is running on amd64, so I can reproduce exactly your case. -- Totus tuus, Glebius. --A6N2fC+uXW/VQSAv Content-Type: text/x-diff; charset=koi8-r Content-Disposition: attachment; filename="in_cksum.backtrace.diff" Index: i386/i386/in_cksum.c =================================================================== --- i386/i386/in_cksum.c (revision 241328) +++ i386/i386/in_cksum.c (working copy) @@ -36,6 +36,7 @@ #include <sys/param.h> #include <sys/systm.h> #include <sys/mbuf.h> +#include <sys/kdb.h> #include <netinet/in.h> #include <netinet/in_systm.h> @@ -204,6 +205,7 @@ caddr_t addr; union q_util q_util; union l_util l_util; + static int once = 0; len -= skip; for (; skip && m; m = m->m_next) { @@ -477,8 +479,12 @@ su.c[0] = *(char *)w; } - if (len) + if (len) { printf("%s: out of data by %d\n", __func__, len); + if (once == 0) + kdb_backtrace(); + once = 1; + } if (mlen == -1) { /* The last mbuf has odd # of bytes. Follow the standard (the odd byte is shifted left by 8 bits) */ --A6N2fC+uXW/VQSAv--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121007193941.GK34622>