Date: Sat, 21 Dec 2002 12:03:24 -0800 From: Jeffrey Hsu <hsu@FreeBSD.org> To: Pierre Beyssac <pb@fasterix.frmug.org> Cc: freebsd-current@FreeBSD.org, jlemon@FreeBSD.org Subject: Re: panic in netinet/tcp_syncache.c: syncache_timer Message-ID: <0H7H003Z9JGAED@mta7.pltn13.pbi.net> In-Reply-To: Message from Pierre Beyssac <pb@fasterix.frmug.org> "of Sat, 21 Dec 2002 19:53:33 %2B0100." <20021221185333.GB913@fasterix.frmug.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Pierre, can you see if this patch fixes your problem? Thanks.
Jeffrey
[-- Attachment #2 --]
Index: tcp_syncache.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/tcp_syncache.c,v
retrieving revision 1.30
diff -u -r1.30 tcp_syncache.c
--- tcp_syncache.c 20 Dec 2002 11:24:02 -0000 1.30
+++ tcp_syncache.c 21 Dec 2002 19:52:18 -0000
@@ -384,14 +384,12 @@
break;
sc = nsc;
inp = sc->sc_tp->t_inpcb;
- INP_LOCK(inp);
if (slot == SYNCACHE_MAXREXMTS ||
slot >= tcp_syncache.rexmt_limit ||
inp->inp_gencnt != sc->sc_inp_gencnt) {
nsc = TAILQ_NEXT(sc, sc_timerq);
syncache_drop(sc, NULL);
tcpstat.tcps_sc_stale++;
- INP_UNLOCK(inp);
continue;
}
/*
@@ -399,6 +397,7 @@
* to modify another entry, so do not obtain the next
* entry on the timer chain until it has completed.
*/
+ INP_LOCK(inp);
(void) syncache_respond(sc, NULL);
INP_UNLOCK(inp);
nsc = TAILQ_NEXT(sc, sc_timerq);
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0H7H003Z9JGAED>
