From owner-freebsd-current Sat Dec 21 11:57:48 2002 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CCBD237B401; Sat, 21 Dec 2002 11:57:46 -0800 (PST) Received: from mta7.pltn13.pbi.net (mta7.pltn13.pbi.net [64.164.98.8]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7F41A43EDA; Sat, 21 Dec 2002 11:57:46 -0800 (PST) (envelope-from hsu@FreeBSD.org) Received: from FreeBSD.org ([63.193.112.125]) by mta7.pltn13.pbi.net (iPlanet Messaging Server 5.1 HotFix 1.6 (built Oct 18 2002)) with ESMTP id <0H7H003Z8JG9ED@mta7.pltn13.pbi.net>; Sat, 21 Dec 2002 11:57:46 -0800 (PST) Date: Sat, 21 Dec 2002 12:03:24 -0800 From: Jeffrey Hsu Subject: Re: panic in netinet/tcp_syncache.c: syncache_timer In-reply-to: Message from Pierre Beyssac "of Sat, 21 Dec 2002 19:53:33 +0100." <20021221185333.GB913@fasterix.frmug.org> To: Pierre Beyssac Cc: freebsd-current@FreeBSD.org, jlemon@FreeBSD.org Message-id: <0H7H003Z9JGAED@mta7.pltn13.pbi.net> MIME-version: 1.0 X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 Content-type: multipart/mixed; boundary="Boundary_(ID_grmdxcDnr+LhDN6MfQcemQ)" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG This is a multipart MIME message. --Boundary_(ID_grmdxcDnr+LhDN6MfQcemQ) Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Pierre, can you see if this patch fixes your problem? Thanks. Jeffrey --Boundary_(ID_grmdxcDnr+LhDN6MfQcemQ) Content-type: text/plain; name=tcp_syncache.diff; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: attachment; filename=tcp_syncache.diff Content-description: tcp_syncache.diff 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); --Boundary_(ID_grmdxcDnr+LhDN6MfQcemQ)-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message