Skip site navigation (1)Skip section navigation (2)
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>