tcp_syncache.hashbase should be zero cleared before calling mtx_init()

YAMAMOTO Shigeru shigeru at iij.ad.jp
Tue Jun 20 00:55:43 UTC 2006


Hi, all,

When I testing -current, my pc panic at booting time.
Message is 'lock "tcp_sc_head" XXXX already initialized'.

So, I read @src/sys/netinet/tcp_syncache.c.
It seems me that 'tcp_syncache.hashbase' should be zero cleared before
calling,

    289                 mtx_init(&tcp_syncache.hashbase[i].sch_mtx, "tcp_sc_head
    289 ",
    290                          NULL, MTX_DEF);

Is it right?

Thanks,
-------
YAMAMOTO Shigeru	<shigeru at iij.ad.jp>

P.S.
currently, I'm using following local patch.
-------------- next part --------------
Index: sys/netinet/tcp_syncache.c
===================================================================
RCS file: /share/cvsup/FreeBSD/current/usr/src/sys/netinet/tcp_syncache.c,v
retrieving revision 1.92
diff -u -r1.92 tcp_syncache.c
--- sys/netinet/tcp_syncache.c	18 Jun 2006 13:03:42 -0000	1.92
+++ sys/netinet/tcp_syncache.c	19 Jun 2006 03:01:00 -0000
@@ -281,7 +281,7 @@
 	/* Allocate the hash table. */
 	MALLOC(tcp_syncache.hashbase, struct syncache_head *,
 	    tcp_syncache.hashsize * sizeof(struct syncache_head),
-	    M_SYNCACHE, M_WAITOK);
+	    M_SYNCACHE, M_WAITOK | M_ZERO);
 
 	/* Initialize the hash buckets. */
 	for (i = 0; i < tcp_syncache.hashsize; i++) {


More information about the freebsd-current mailing list