From owner-freebsd-bugs@FreeBSD.ORG Fri Mar 14 20:20:02 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E8211065670 for ; Fri, 14 Mar 2008 20:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 80F278FC21 for ; Fri, 14 Mar 2008 20:20:02 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m2EKK2SH050700 for ; Fri, 14 Mar 2008 20:20:02 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m2EKK2od050699; Fri, 14 Mar 2008 20:20:02 GMT (envelope-from gnats) Date: Fri, 14 Mar 2008 20:20:02 GMT Message-Id: <200803142020.m2EKK2od050699@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Michael Stowe" Cc: Subject: Re: kern/121706: "rtfree: 0xc4383870 has 1 refs" emitted repeatedly X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Michael Stowe List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Mar 2008 20:20:02 -0000 The following reply was made to PR kern/121706; it has been noted by GNATS. From: "Michael Stowe" To: bug-followup@FreeBSD.org, mstowe@chicago.us.mensa.org Cc: Subject: Re: kern/121706: "rtfree: 0xc4383870 has 1 refs" emitted repeatedly Date: Fri, 14 Mar 2008 14:52:00 -0500 (CDT) Well, after looking at the backtrace, the solution is (almost) obvious. After applying the patch below, the problem goes away. --- netinet/if_ether.c 2007-10-07 15:44:22.000000000 -0500 +++ netinet/if_ether.c.new 2008-03-14 14:49:15.000000000 -0500 @@ -805,7 +805,7 @@ * over who claims what Ether address. */ if (rt->rt_ifp == ifp) { - rtfree(rt); + RTFREE_LOCKED(rt); goto drop; } (void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln);