Date: Tue, 28 Oct 2008 07:37:02 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r184397 - user/kmacy/HEAD_fast_xmit/sys/net Message-ID: <200810280737.m9S7b295086465@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810280737.m9S7b295086465>