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
[-- Attachment #1 --]
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.
[-- Attachment #2 --]
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) */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121007193941.GK34622>
