cvs commit: src/sys/contrib/ipfilter/netinet ip_auth.cip_compat.h ip_frag.c ip_log.c ip_nat.h ip_proxy.c ip_state.c ip_state.h mlfk_ipl.c

Giorgos Keramidas keramida at ceid.upatras.gr
Fri Dec 24 15:11:43 PST 2004


On 2004-12-24 14:46, Scott Long <scottl at freebsd.org> wrote:
> Darren Reed wrote:
> >darrenr     2004-12-24 09:14:26 UTC
> >
> >  FreeBSD src repository
> >
> >  Modified files:
> >    sys/contrib/ipfilter/netinet ip_auth.c ip_compat.h ip_frag.c
> >                                 ip_log.c ip_nat.h ip_proxy.c
> >                                 ip_state.c ip_state.h mlfk_ipl.c
> >  Log:
> >  Enable fine grained locking within IPFilter, using mtx(9) and sx(9)
> >  allowing
> >  the the "needs giant" flag to be removed from the driver.
>
> I'm not sure how this could possibly compile on FreeBSD.  Did you forget
> to check in a file perhaps?  Please fix this ASAP, otherwise it's going
> to get reverted.

Hi Scott,

can you test this as a fix for the build problems?  It seems to fix the
buildkernel issues here.  The arbitrary choise of __FreeBSD_version's
value was based on this snippet from src/sys/ipfilter/netinet/ip_compat.h:

    427 #if defined(__FreeBSD_version) && (__FreeBSD_version >= 500043)
    428 #  include <sys/mutex.h>
    429 #  include <sys/sx.h>
    430 #  include <machine/atomic.h>
    431 #  define       USE_MUTEX               1
    432 #  define       kmutex_t                struct mtx
    433 #  define       KRWLOCK_T               struct sx
    434 #  define       NETBSD_PF
    435 #endif

%%%
Index: sys/contrib/ipfilter/netinet/fil.c
===================================================================
RCS file: /home/ncvs/src/sys/contrib/ipfilter/netinet/fil.c,v
retrieving revision 1.40
diff -u -r1.40 fil.c
--- sys/contrib/ipfilter/netinet/fil.c	16 Dec 2004 21:02:15 -0000	1.40
+++ sys/contrib/ipfilter/netinet/fil.c	24 Dec 2004 22:49:58 -0000
@@ -115,10 +115,10 @@
 # define	FR_VERBOSE(verb_pr)
 # define	FR_DEBUG(verb_pr)
 # define	IPLLOG(a, c, d, e)		ipflog(a, c, d, e)
-# if SOLARIS || defined(__sgi)
+# if SOLARIS || defined(__sgi) || (__FreeBSD_version >= 500043)
 extern	KRWLOCK_T	ipf_mutex, ipf_auth, ipf_nat;
 extern	kmutex_t	ipf_rw;
-# endif /* SOLARIS || __sgi */
+# endif /* SOLARIS || __sgi || __FreeBSD_version */
 #endif /* _KERNEL */
 
 
Index: sys/contrib/ipfilter/netinet/ip_fil.c
===================================================================
RCS file: /home/ncvs/src/sys/contrib/ipfilter/netinet/ip_fil.c,v
retrieving revision 1.49
diff -u -r1.49 ip_fil.c
--- sys/contrib/ipfilter/netinet/ip_fil.c	29 Sep 2004 04:54:32 -0000	1.49
+++ sys/contrib/ipfilter/netinet/ip_fil.c	24 Dec 2004 22:49:49 -0000
@@ -171,6 +171,9 @@
 extern	int		tcp_mtudisc;
 extern	kmutex_t        ipf_rw;
 extern	KRWLOCK_T	ipf_mutex;
+# elif (__FreeBSD_version >= 500043)
+extern	kmutex_t        ipf_rw;
+extern	KRWLOCK_T	ipf_mutex;
 # endif
 #else
 void	init_ifp __P((void));
%%%


More information about the cvs-src mailing list