From owner-svn-src-user@FreeBSD.ORG Tue Oct 28 07:37:02 2008 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8EC5F1065674; Tue, 28 Oct 2008 07:37:02 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EB2E8FC1E; Tue, 28 Oct 2008 07:37:02 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id m9S7b23F086466; Tue, 28 Oct 2008 07:37:02 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id m9S7b295086465; Tue, 28 Oct 2008 07:37:02 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <200810280737.m9S7b295086465@svn.freebsd.org> From: Kip Macy Date: Tue, 28 Oct 2008 07:37:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r184397 - user/kmacy/HEAD_fast_xmit/sys/net X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Oct 2008 07:37:02 -0000 Author: kmacy Date: Tue Oct 28 07:37:02 2008 New Revision: 184397 URL: http://svn.freebsd.org/changeset/base/184397 Log: - don't pass mbuf to arpresolve in flowtable_lookup - in the current code path it causes a dangling referenc - allow duplicate flow locks Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Modified: user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c ============================================================================== --- user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Tue Oct 28 06:27:16 2008 (r184396) +++ user/kmacy/HEAD_fast_xmit/sys/net/flowtable.c Tue Oct 28 07:37:02 2008 (r184397) @@ -625,7 +625,7 @@ uncached: if (ro.ro_rt == NULL) error = ENETUNREACH; else { - error = arpresolve(ro.ro_rt->rt_ifp, ro.ro_rt, m, + error = arpresolve(ro.ro_rt->rt_ifp, ro.ro_rt, NULL, &ro.ro_dst, desten); route_to_rtentry_info(&ro, error ? NULL : desten, ri); @@ -696,7 +696,7 @@ flowtable_alloc(int nentry, int flags) ft->ft_locks = malloc(ft->ft_lock_count*sizeof(struct mtx), M_RTABLE, M_WAITOK | M_ZERO); for (i = 0; i < ft->ft_lock_count; i++) - mtx_init(&ft->ft_locks[i], "flow", NULL, MTX_DEF); + mtx_init(&ft->ft_locks[i], "flow", NULL, MTX_DEF|MTX_DUPOK); ft->ft_masks[0] = bit_alloc(nentry); }