svn commit: r184397 - user/kmacy/HEAD_fast_xmit/sys/net

Kip Macy kmacy at FreeBSD.org
Tue Oct 28 07:37:02 UTC 2008


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);
 	}


More information about the svn-src-user mailing list