Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Jul 2008 13:41:09 GMT
From:      Ed Schouten <ed@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 145888 for review
Message-ID:  <200807251341.m6PDf9uA079999@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=145888

Change 145888 by ed@ed_dull on 2008/07/25 13:40:29

	IFC.

Affected files ...

.. //depot/projects/mpsafetty/ObsoleteFiles.inc#4 integrate
.. //depot/projects/mpsafetty/UPDATING#3 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/ip_fil.c#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/ipsend/iptests.c#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/ipsend/sock.c#3 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/lib/printnat.c#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n12#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n2#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n5#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni1.nat#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni2.nat#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni4.nat#2 integrate
.. //depot/projects/mpsafetty/contrib/ipfilter/tools/ipnat_y.y#2 integrate
.. //depot/projects/mpsafetty/include/Makefile#2 integrate
.. //depot/projects/mpsafetty/include/sgtty.h#2 delete
.. //depot/projects/mpsafetty/lib/libc/sys/setfib.2#2 integrate
.. //depot/projects/mpsafetty/sbin/ipfw/ipfw.8#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_compat.h#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_fil.h#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_nat.c#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_nat.h#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_state.c#2 integrate
.. //depot/projects/mpsafetty/sys/contrib/pf/net/pf_ioctl.c#2 integrate
.. //depot/projects/mpsafetty/sys/dev/hwpmc/hwpmc_mod.c#2 integrate
.. //depot/projects/mpsafetty/sys/dev/usb/ehci_pci.c#2 integrate
.. //depot/projects/mpsafetty/sys/kern/kern_exec.c#3 integrate
.. //depot/projects/mpsafetty/sys/kern/kern_lock.c#2 integrate
.. //depot/projects/mpsafetty/sys/kern/kern_proc.c#3 integrate
.. //depot/projects/mpsafetty/sys/modules/mem/Makefile#3 integrate
.. //depot/projects/mpsafetty/sys/nfsclient/nfs_vfsops.c#3 integrate
.. //depot/projects/mpsafetty/sys/sys/proc.h#3 integrate
.. //depot/projects/mpsafetty/usr.sbin/setfib/setfib.c#2 integrate

Differences ...

==== //depot/projects/mpsafetty/ObsoleteFiles.inc#4 (text+ko) ====

@@ -1,5 +1,5 @@
 #
-# $FreeBSD: src/ObsoleteFiles.inc,v 1.153 2008/07/19 18:21:52 marcel Exp $
+# $FreeBSD: src/ObsoleteFiles.inc,v 1.154 2008/07/25 12:37:46 ed Exp $
 #
 # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
 # directories (OLD_DIRS) which should get removed at an update. Recently
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20080725: sgtty.h removed
+OLD_FILES+=usr/include/sgtty.h
 # 20080719: sade(8) removed on all but amd64, i386 and sparc64
 .if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" && \
     ${TARGET_ARCH} != "sparc64"

==== //depot/projects/mpsafetty/UPDATING#3 (text+ko) ====

@@ -26,7 +26,7 @@
 	The sio(4) driver has been removed from the i386 and amd64
 	kernel configuration files. This means uart(4) is now the
 	default serial port driver on those platforms as well.
-	
+
 	To prevent collisions with the sio(4) driver, the uart(4) driver
 	uses different names for its device nodes. This means the
 	onboard serial port will now most likely be called "ttyu0"
@@ -40,7 +40,7 @@
 20080603:
 	The version that Linuxulator emulates was changed from 2.4.2
 	to 2.6.16. If you experience any problems with Linux binaries
-	please try to set sysctl compat.linux.osrelease to 2.4.2 and 
+	please try to set sysctl compat.linux.osrelease to 2.4.2 and
 	if it fixes the problem contact emulation mailing list.
 
 20080525:
@@ -49,7 +49,7 @@
 
 20080509:
 	I have checked in code to support multiple routing tables.
-	see the man pages setfib(1) and setfib(2).
+	See the man pages setfib(1) and setfib(2).
 	This is a hopefully backwards compatible version,
 	but to make use of it you need to compile your kernel
 	with options ROUTETABLES=2 (or more up to 16).
@@ -343,9 +343,9 @@
 	replace it as a more portable (and re-entrant) API.
 
 20070224:
-	To support interrupt filtering a modification to the newbus API 
+	To support interrupt filtering a modification to the newbus API
 	has occurred, ABI was broken and __FreeBSD_version was bumped
-	to 700031. Please make sure that your kernel and modules are in 
+	to 700031. Please make sure that your kernel and modules are in
 	sync. For more info:
 	http://docs.freebsd.org/cgi/mid.cgi?20070221233124.GA13941
 
@@ -404,8 +404,8 @@
 	'hw.pci.enable_msix' tunables to 0 in the loader.
 
 20061205:
-	The removal of several facets of the experimental Threading 
-	system from the kernel means that the proc and thread structures 
+	The removal of several facets of the experimental Threading
+	system from the kernel means that the proc and thread structures
 	have changed quite a bit. I suggest all kernel modules that might
 	reference these structures be recompiled.. Especially the
 	linux module.
@@ -457,7 +457,7 @@
 	The MUTEX_PROFILING option has been renamed to LOCK_PROFILING.
 	The lockmgr object layout has been changed as a result of having
 	a lock_object embedded in it. As a consequence all file system
-	kernel modules must be re-compiled. The mutex profiling man page 
+	kernel modules must be re-compiled. The mutex profiling man page
 	has not yet been updated to reflect this change.
 
 20061026:
@@ -506,7 +506,7 @@
  	after updating the kernel sources and compiling a new kernel,
  	the i4b user space tools in "/usr/src/usr.sbin/i4b" must also
  	be rebuilt, and vice versa.
- 
+
 20060627:
 	The XBOX kernel now defaults to the nfe(4) driver instead of
 	the nve(4) driver. Please update your configuration
@@ -588,7 +588,7 @@
 20060201:
 	The kernel ABI to file system modules was changed on i386.
 	Please make sure that your kernel and modules are in sync.
-	
+
 20060118:
 	This actually occured some time ago, but installing the kernel
 	now also installs a bunch of symbol files for the kernel modules.
@@ -1078,4 +1078,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.535 2008/07/13 07:20:14 ed Exp $
+$FreeBSD: src/UPDATING,v 1.537 2008/07/25 09:30:53 maxim Exp $

==== //depot/projects/mpsafetty/contrib/ipfilter/ip_fil.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/contrib/ipfilter/ip_fil.c,v 1.6 2007/10/18 21:52:11 darrenr Exp $	*/
+/*	$FreeBSD: src/contrib/ipfilter/ip_fil.c,v 1.7 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1993-2001 by Darren Reed.
@@ -801,3 +801,18 @@
 {
 	return 0;
 }
+
+
+u_32_t ipf_random()
+{
+	static int seeded = 0;
+
+	/*
+	 * Choose a non-random seed so that "randomness" can be "tested."
+	 */
+	if (seeded == 0) {
+		srand(0);
+		seeded = 1;
+	}
+	return rand();
+}

==== //depot/projects/mpsafetty/contrib/ipfilter/ipsend/iptests.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/contrib/ipfilter/ipsend/iptests.c,v 1.14 2007/10/18 21:52:12 darrenr Exp $	*/
+/*	$FreeBSD: src/contrib/ipfilter/ipsend/iptests.c,v 1.15 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1993-1998 by Darren Reed.
@@ -24,6 +24,7 @@
 #if !defined(__osf__)
 # ifdef __NetBSD__ 
 #  include <machine/lock.h>
+#  include <machine/mutex.h>
 # endif
 # define _KERNEL
 # define KERNEL

==== //depot/projects/mpsafetty/contrib/ipfilter/ipsend/sock.c#3 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/contrib/ipfilter/ipsend/sock.c,v 1.20 2008/07/23 16:34:53 des Exp $ */
+/* $FreeBSD: src/contrib/ipfilter/ipsend/sock.c,v 1.21 2008/07/24 12:35:05 darrenr Exp $ */
 /*
  * sock.c (C) 1995-1998 Darren Reed
  *
@@ -32,6 +32,7 @@
 #if !defined(__osf__)
 # ifdef __NetBSD__ 
 #  include <machine/lock.h>
+#  include <machine/mutex.h>
 # endif
 # ifdef __FreeBSD__
 #  define _WANT_FILE

==== //depot/projects/mpsafetty/contrib/ipfilter/lib/printnat.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/contrib/ipfilter/lib/printnat.c,v 1.5 2007/10/18 21:52:12 darrenr Exp $	*/
+/*	$FreeBSD: src/contrib/ipfilter/lib/printnat.c,v 1.6 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 2002-2005 by Darren Reed.
@@ -217,6 +217,8 @@
 			putchar(' ');
 			printproto(pr, np->in_p, np);
 		}
+		if (np->in_flags & IPN_SEQUENTIAL)
+			printf(" sequential");
 		printf("\n");
 		if (opts & OPT_DEBUG) {
 			struct in_addr nip;

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n12#2 (text+ko) ====

@@ -1,1 +1,1 @@
-map le0 192.168.126.0/24 -> 0/32 portmap tcp/udp 10000:20000
+map le0 192.168.126.0/24 -> 0/32 portmap tcp/udp 10000:20000 sequential

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n2#2 (text+ko) ====

@@ -1,4 +1,4 @@
-map zx0 10.1.1.1/32 -> 10.2.2.2/32 portmap tcp 10000:20000
-map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000
-map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000
-map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001
+map zx0 10.1.1.1/32 -> 10.2.2.2/32 portmap tcp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000 sequential
+map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001 sequential

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/n5#2 (text+ko) ====

@@ -1,6 +1,6 @@
 map zx0 10.1.1.1/32 -> 10.2.2.2/32
 map zx0 from 10.1.1.0/24 to 10.1.0.0/16 -> 10.3.4.5/32
 map zx0 from 10.1.1.0/24 ! to 10.1.0.0/16 -> 10.3.4.0/24
-map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000
-map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000
-map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap udp 10000:20000 sequential
+map zx0 10.1.0.0/16 -> 10.3.4.0/24 portmap tcp/udp 10000:20000 sequential
+map zx0 10.1.1.0/24 -> 10.3.4.5/32 portmap tcp/udp 40000:40001 sequential

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni1.nat#2 (text+ko) ====

@@ -1,3 +1,3 @@
-map df0 from 2.2.2.2/32 port 20000 >< 25000 to any -> 6.6.6.8/32 portmap udp 2000:2500
-map df0 from 2.2.2.2/32 port 2000 >< 2500 to any -> 6.6.6.7/32 portmap udp 20000:25000
+map df0 from 2.2.2.2/32 port 20000 >< 25000 to any -> 6.6.6.8/32 portmap udp 2000:2500 sequential
+map df0 from 2.2.2.2/32 port 2000 >< 2500 to any -> 6.6.6.7/32 portmap udp 20000:25000 sequential
 map df0 from 2.2.2.2/32 to any -> 6.6.6.6/32

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni2.nat#2 (text+ko) ====

@@ -1,1 +1,1 @@
-map xl0 10.0.0.0/8 -> 1.1.1.1/32 portmap tcp/udp 40000:60000
+map xl0 10.0.0.0/8 -> 1.1.1.1/32 portmap tcp/udp 40000:60000 sequential

==== //depot/projects/mpsafetty/contrib/ipfilter/test/regress/ni4.nat#2 (text+ko) ====

@@ -1,1 +1,1 @@
-map df0 2.2.2.2/32 -> 6.6.6.6/32 portmap tcp/udp 40000:60000
+map df0 2.2.2.2/32 -> 6.6.6.6/32 portmap tcp/udp 40000:60000 sequential

==== //depot/projects/mpsafetty/contrib/ipfilter/tools/ipnat_y.y#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/contrib/ipfilter/tools/ipnat_y.y,v 1.6 2007/10/18 21:52:13 darrenr Exp $	*/
+/*	$FreeBSD: src/contrib/ipfilter/tools/ipnat_y.y,v 1.7 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 2001-2006 by Darren Reed.
@@ -95,7 +95,7 @@
 %token	IPNY_MAP IPNY_BIMAP IPNY_FROM IPNY_TO IPNY_MASK IPNY_PORTMAP IPNY_ANY
 %token	IPNY_ROUNDROBIN IPNY_FRAG IPNY_AGE IPNY_ICMPIDMAP IPNY_PROXY
 %token	IPNY_TCP IPNY_UDP IPNY_TCPUDP IPNY_STICKY IPNY_MSSCLAMP IPNY_TAG
-%token	IPNY_TLATE
+%token	IPNY_TLATE IPNY_SEQUENTIAL
 %type	<port> portspec
 %type	<num> hexnumber compare range proto
 %type	<ipa> hostname ipv4
@@ -422,11 +422,11 @@
 	;
 
 mapport:
-	IPNY_PORTMAP tcpudp portspec ':' portspec
+	IPNY_PORTMAP tcpudp portspec ':' portspec randport
 			{ nat->in_pmin = htons($3);
 			  nat->in_pmax = htons($5);
 			}
-	| IPNY_PORTMAP tcpudp IPNY_AUTO
+	| IPNY_PORTMAP tcpudp IPNY_AUTO randport
 			{ nat->in_flags |= IPN_AUTOPORTMAP;
 			  nat->in_pmin = htons(1024);
 			  nat->in_pmax = htons(65535);
@@ -446,6 +446,10 @@
 			}
 	;
 
+randport:
+	| IPNY_SEQUENTIAL	{ nat->in_flags |= IPN_SEQUENTIAL; }
+	;
+
 sobject:
 	saddr
 	| saddr port portstuff	{ nat->in_sport = $3.p1;
@@ -519,6 +523,7 @@
 nattag:	| IPNY_TAG YY_STR		{ strncpy(nat->in_tag.ipt_tag, $2,
 						  sizeof(nat->in_tag.ipt_tag));
 					}
+
 rr:	| IPNY_ROUNDROBIN		{ nat->in_flags |= IPN_ROUNDR; }
 	;
 
@@ -647,6 +652,7 @@
 	{ "range",	IPNY_RANGE },
 	{ "rdr",	IPNY_RDR },
 	{ "round-robin",IPNY_ROUNDROBIN },
+	{ "sequential",	IPNY_SEQUENTIAL },
 	{ "sticky",	IPNY_STICKY },
 	{ "tag",	IPNY_TAG },
 	{ "tcp",	IPNY_TCP },

==== //depot/projects/mpsafetty/include/Makefile#2 (text+ko) ====

@@ -1,5 +1,5 @@
 #	@(#)Makefile	8.2 (Berkeley) 1/4/94
-# $FreeBSD: src/include/Makefile,v 1.280 2008/06/17 06:26:29 davidxu Exp $
+# $FreeBSD: src/include/Makefile,v 1.281 2008/07/25 12:37:46 ed Exp $
 #
 # Doing a "make install" builds /usr/include.
 
@@ -18,7 +18,7 @@
 	netdb.h nl_types.h nlist.h nss.h nsswitch.h paths.h \
 	printf.h proc_service.h pthread.h \
 	pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h regexp.h \
-	res_update.h resolv.h runetype.h search.h setjmp.h sgtty.h \
+	res_update.h resolv.h runetype.h search.h setjmp.h \
 	signal.h spawn.h stab.h \
 	stdbool.h stddef.h stdio.h stdlib.h string.h stringlist.h \
 	strings.h sysexits.h tar.h tgmath.h \

==== //depot/projects/mpsafetty/lib/libc/sys/setfib.2#2 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/sys/setfib.2,v 1.2 2008/05/10 07:31:34 brueffer Exp $
+.\" $FreeBSD: src/lib/libc/sys/setfib.2,v 1.3 2008/07/25 01:09:36 julian Exp $
 .\"
 .Dd May 9, 2008
 .Dt SETFIB 2
@@ -58,7 +58,7 @@
 .Rv -std setfib
 .Sh ERRORS
 The
-.Fn kill
+.Fn setfib
 system call
 will fail and no action will be taken and return
 .Er EINVAL

==== //depot/projects/mpsafetty/sbin/ipfw/ipfw.8#2 (text+ko) ====

@@ -1,5 +1,5 @@
 .\"
-.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.212 2008/05/09 23:02:54 julian Exp $
+.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.213 2008/07/24 18:39:36 julian Exp $
 .\"
 .Dd November 26, 2007
 .Dt IPFW 8
@@ -850,7 +850,8 @@
 .Ar fibnum
 in any subsequent forwarding decisions. Initially this is
 limited to the values  0 through 15. See 
-.Xr setfib 8
+.Xr setfib 8 .
+Processing continues at the next rule.
 .El
 .Ss RULE BODY
 The body of a rule contains zero or more patterns (such as

==== //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_compat.h#2 (text+ko) ====

@@ -4,7 +4,7 @@
  * See the IPFILTER.LICENCE file for details on licencing.
  *
  * @(#)ip_compat.h	1.8 1/14/96
- * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_compat.h,v 1.35 2007/10/30 15:23:26 darrenr Exp $
+ * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_compat.h,v 1.36 2008/07/24 12:35:05 darrenr Exp $
  * Id: ip_compat.h,v 2.142.2.57 2007/10/10 09:51:42 darrenr Exp $
  */
 
@@ -204,6 +204,8 @@
 # define	U_32_T	1
 
 # ifdef _KERNEL
+#  define	NEED_LOCAL_RAND	1
+#  define	ipf_random		arc4random
 #  define	KRWLOCK_T		krwlock_t
 #  define	KMUTEX_T		kmutex_t
 
@@ -334,6 +336,7 @@
 typedef	struct uio	uio_t;
 # endif
 typedef	int		ioctlcmd_t;
+typedef	uint8_t		u_int8_t;
 
 # define OS_RECOGNISED 1
 
@@ -564,6 +567,8 @@
 # endif
 
 # ifdef _KERNEL
+#  define	NEED_LOCAL_RAND	1
+#  define	ipf_random		arc4random
 #  define	ATOMIC_INC(x)		{ MUTEX_ENTER(&ipf_rw); \
 					  (x)++; MUTEX_EXIT(&ipf_rw); }
 #  define	ATOMIC_DEC(x)		{ MUTEX_ENTER(&ipf_rw); \
@@ -660,6 +665,8 @@
 # include <sys/sysmacros.h>
 
 # ifdef _KERNEL
+#  define	NEED_LOCAL_RAND		1
+#  define	ipf_random		arc4random
 #  define	KMUTEX_T		simple_lock_data_t
 #  define	KRWLOCK_T		lock_data_t
 #  include <net/net_globals.h>
@@ -781,6 +788,8 @@
 typedef	char *	caddr_t;
 # endif
 
+# define	ipf_random	arc4random
+
 # ifdef _KERNEL
 #  if (__NetBSD_Version__ >= 399001400)
 #   define	KMALLOCS(a, b, c)	(a) = (b)malloc((c), _M_IPF, M_NOWAIT)
@@ -820,6 +829,11 @@
 /*                                F R E E B S D                            */
 /* ----------------------------------------------------------------------- */
 #ifdef __FreeBSD__
+# if  (__FreeBSD_version < 400000)
+#  define	NEED_LOCAL_RAND	1
+# else
+#  define	ipf_random	arc4random
+# endif
 # if defined(_KERNEL)
 #  if (__FreeBSD_version >= 500000)                          
 #   include "opt_bpf.h"

==== //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_fil.h#2 (text+ko) ====

@@ -4,7 +4,7 @@
  * See the IPFILTER.LICENCE file for details on licencing.
  *
  * @(#)ip_fil.h	1.35 6/5/96
- * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil.h,v 1.36 2007/10/18 21:52:13 darrenr Exp $
+ * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_fil.h,v 1.37 2008/07/24 12:35:05 darrenr Exp $
  * Id: ip_fil.h,v 2.170.2.51 2007/10/10 09:48:03 darrenr Exp $
  */
 
@@ -1523,6 +1523,12 @@
 extern	int		ipf_deltoken __P((int,int, void *));
 extern	int		ipfsync __P((void));
 extern	int		ipf_genericiter __P((void *, int, void *));
+#ifndef ipf_random
+extern	u_32_t		ipf_random __P((void));
+#endif
+#ifdef NEED_LOCAL_RAND
+extern	void		ipf_rand_push __P((void *, int));
+#endif
 
 extern	int	fr_running;
 extern	u_long	fr_frouteok[2];

==== //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_nat.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.c,v 1.44 2007/10/30 15:23:26 darrenr Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.c,v 1.45 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1995-2003 by Darren Reed.
@@ -117,7 +117,7 @@
 
 #if !defined(lint)
 static const char sccsid[] = "@(#)ip_nat.c	1.11 6/5/96 (C) 1995 Darren Reed";
-static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.c,v 1.44 2007/10/30 15:23:26 darrenr Exp $";
+static const char rcsid[] = "@(#)$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.c,v 1.45 2008/07/24 12:35:05 darrenr Exp $";
 /* static const char rcsid[] = "@(#)$Id: ip_nat.c,v 2.195.2.102 2007/10/16 10:08:10 darrenr Exp $"; */
 #endif
 
@@ -1678,6 +1678,9 @@
 
 	if (logtype != 0 && nat_logging != 0)
 		nat_log(nat, logtype);
+#if defined(NEED_LOCAL_RAND) && defined(_KERNEL)
+	ipf_rand_push(nat, sizeof(*nat));
+#endif
 
 	/*
 	 * Take it as a general indication that all the pointers are set if
@@ -2029,7 +2032,13 @@
 			/*
 			 * Standard port translation.  Select next port.
 			 */
-			port = htons(np->in_pnext++);
+			if (np->in_flags & IPN_SEQUENTIAL) {
+				port = htons(np->in_pnext);
+			} else {
+				port = ipf_random() % (ntohs(np->in_pmax) -
+						       ntohs(np->in_pmin));
+			}
+			np->in_pnext++;
 
 			if (np->in_pnext > ntohs(np->in_pmax)) {
 				np->in_pnext = ntohs(np->in_pmin);
@@ -3793,7 +3802,7 @@
 
 	READ_ENTER(&ipf_nat);
 
-	if ((fin->fin_p == IPPROTO_ICMP) && !(nflags & IPN_ICMPQUERY) &&
+	if (((fin->fin_flx & FI_ICMPERR) != 0) &&
 	    (nat = nat_icmperror(fin, &nflags, NAT_OUTBOUND)))
 		/*EMPTY*/;
 	else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))
@@ -4088,7 +4097,7 @@
 
 	READ_ENTER(&ipf_nat);
 
-	if ((fin->fin_p == IPPROTO_ICMP) && !(nflags & IPN_ICMPQUERY) &&
+	if (((fin->fin_flx & FI_ICMPERR) != 0) &&
 	    (nat = nat_icmperror(fin, &nflags, NAT_INBOUND)))
 		/*EMPTY*/;
 	else if ((fin->fin_flx & FI_FRAG) && (nat = fr_nat_knownfrag(fin)))

==== //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_nat.h#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.h,v 1.27 2007/10/18 21:52:14 darrenr Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.h,v 1.28 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1995-2001, 2003 by Darren Reed.
@@ -6,7 +6,7 @@
  * See the IPFILTER.LICENCE file for details on licencing.
  *
  * @(#)ip_nat.h	1.5 2/4/96
- * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.h,v 1.27 2007/10/18 21:52:14 darrenr Exp $
+ * $FreeBSD: src/sys/contrib/ipfilter/netinet/ip_nat.h,v 1.28 2008/07/24 12:35:05 darrenr Exp $
  * Id: ip_nat.h,v 2.90.2.20 2007/09/25 08:27:32 darrenr Exp $
  */
 
@@ -256,9 +256,11 @@
 #define	IPN_FIXEDDPORT	0x200000
 #define	IPN_FINDFORWARD	0x400000
 #define	IPN_IN		0x800000
+#define	IPN_SEQUENTIAL	0x1000000
 #define	IPN_USERFLAGS	(IPN_TCPUDP|IPN_AUTOPORTMAP|IPN_IPRANGE|IPN_SPLIT|\
 			 IPN_ROUNDR|IPN_FILTER|IPN_NOTSRC|IPN_NOTDST|\
-			 IPN_FRAG|IPN_STICKY|IPN_FIXEDDPORT|IPN_ICMPQUERY)
+			 IPN_FRAG|IPN_STICKY|IPN_FIXEDDPORT|IPN_ICMPQUERY|\
+			 IPN_SEQUENTIAL)
 
 /*
  * Values for in_redir

==== //depot/projects/mpsafetty/sys/contrib/ipfilter/netinet/ip_state.c#2 (text+ko) ====

@@ -1,4 +1,4 @@
-/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_state.c,v 1.41 2007/10/30 15:23:27 darrenr Exp $	*/
+/*	$FreeBSD: src/sys/contrib/ipfilter/netinet/ip_state.c,v 1.42 2008/07/24 12:35:05 darrenr Exp $	*/
 
 /*
  * Copyright (C) 1995-2003 by Darren Reed.
@@ -195,6 +195,9 @@
 /* ------------------------------------------------------------------------ */
 int fr_stateinit()
 {
+#if defined(NEED_LOCAL_RAND) || !defined(_KERNEL)
+	struct timeval tv;
+#endif
 	int i;
 
 	KMALLOCS(ips_table, ipstate_t **, fr_statesize * sizeof(ipstate_t *));
@@ -205,20 +208,27 @@
 	KMALLOCS(ips_seed, u_long *, fr_statesize * sizeof(*ips_seed));
 	if (ips_seed == NULL)
 		return -2;
+#if defined(NEED_LOCAL_RAND) || !defined(_KERNEL)
+	tv.tv_sec = 0;
+	GETKTIME(&tv);
+#endif
 	for (i = 0; i < fr_statesize; i++) {
 		/*
 		 * XXX - ips_seed[X] should be a random number of sorts.
 		 */
-#if  (__FreeBSD_version >= 400000)
+#if !defined(NEED_LOCAL_RAND) && defined(_KERNEL)
 		ips_seed[i] = arc4random();
 #else
 		ips_seed[i] = ((u_long)ips_seed + i) * fr_statesize;
-		ips_seed[i] ^= 0xa5a55a5a;
+		ips_seed[i] += tv.tv_sec;
 		ips_seed[i] *= (u_long)ips_seed;
 		ips_seed[i] ^= 0x5a5aa5a5;
 		ips_seed[i] *= fr_statemax;
 #endif
 	}
+#if defined(NEED_LOCAL_RAND) && defined(_KERNEL)
+	ipf_rand_push(ips_seed, fr_statesize * sizeof(*ips_seed));
+#endif
 
 	/* fill icmp reply type table */
 	for (i = 0; i <= ICMP_MAXTYPE; i++)
@@ -3028,6 +3038,10 @@
 		(void) fr_derefrule(&is->is_rule);
 	}
 
+#if defined(NEED_LOCAL_RAND) && defined(_KERNEL)
+	ipf_rand_push(is, sizeof(*is));
+#endif
+
 	MUTEX_DESTROY(&is->is_lock);
 	KFREE(is);
 	ips_num--;

==== //depot/projects/mpsafetty/sys/contrib/pf/net/pf_ioctl.c#2 (text+ko) ====

@@ -40,7 +40,7 @@
 #include "opt_inet6.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.33 2008/06/05 19:30:20 mlaier Exp $");
+__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf_ioctl.c,v 1.34 2008/07/24 19:05:58 julian Exp $");
 #endif
 
 #ifdef __FreeBSD__
@@ -1531,7 +1531,7 @@
 			pfi_kif_ref(rule->kif, PFI_KIF_REF_RULE);
 		}
 
-#ifdef __FreeBSD__ /* ROUTEING */
+#ifdef __FreeBSD__ /* ROUTING */
 		if (rule->rtableid > 0 && rule->rtableid > rt_numfibs)
 #else
 		if (rule->rtableid > 0 && !rtable_exists(rule->rtableid))

==== //depot/projects/mpsafetty/sys/dev/hwpmc/hwpmc_mod.c#2 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.32 2008/01/13 14:44:02 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/hwpmc/hwpmc_mod.c,v 1.33 2008/07/25 05:49:48 jeff Exp $");
 
 #include <sys/param.h>
 #include <sys/eventhandler.h>
@@ -966,7 +966,11 @@
 	/* issue an attach event to a configured log file */
 	if (pm->pm_owner->po_flags & PMC_PO_OWNS_LOGFILE) {
 		pmc_getfilename(p->p_textvp, &fullpath, &freepath);
-		pmclog_process_pmcattach(pm, p->p_pid, fullpath);
+		if (p->p_flag & P_KTHREAD) {
+			fullpath = kernelname;
+			freepath = NULL;
+		} else
+			pmclog_process_pmcattach(pm, p->p_pid, fullpath);
 		if (freepath)
 			FREE(freepath, M_TEMP);
 		if (PMC_IS_SAMPLING_MODE(PMC_TO_MODE(pm)))

==== //depot/projects/mpsafetty/sys/dev/usb/ehci_pci.c#2 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/ehci_pci.c,v 1.32 2008/04/11 05:50:53 benno Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/ehci_pci.c,v 1.33 2008/07/24 23:22:19 ivoras Exp $");
 
 /*
  * USB Enhanced Host Controller Driver, a.k.a. USB 2.0 controller.
@@ -99,6 +99,8 @@
 /* AMD */
 #define PCI_EHCI_DEVICEID_8111		0x10227463
 static const char *ehci_device_8111 = "AMD 8111 USB 2.0 controller";
+#define PCI_EHCI_DEVICEID_CS5536	0x20951022
+static const char *ehci_device_cs5536 = "AMD CS5536 (Geode) USB 2.0 controller";
 
 /* ATI */
 #define PCI_EHCI_DEVICEID_SB200		0x43451002
@@ -221,6 +223,8 @@
 		return (ehci_device_m5239);
 	case PCI_EHCI_DEVICEID_8111:
 		return (ehci_device_8111);
+	case PCI_EHCI_DEVICEID_CS5536:
+		return (ehci_device_cs5536);
 	case PCI_EHCI_DEVICEID_SB200:
 		return (ehci_device_sb200);
 	case PCI_EHCI_DEVICEID_SB400:
@@ -305,8 +309,13 @@
 	case PCI_USBREV_PRE_1_0:
 	case PCI_USBREV_1_0:
 	case PCI_USBREV_1_1:
+		device_printf(self, "pre-2.0 USB rev\n");
+		if (pci_get_devid(self) == PCI_EHCI_DEVICEID_CS5536) {
+			sc->sc_bus.usbrev = USBREV_2_0;
+			device_printf(self, "Quirk for CS5536 USB 2.0 enabled\n");
+			break;
+		}
 		sc->sc_bus.usbrev = USBREV_UNKNOWN;
-		device_printf(self, "pre-2.0 USB rev\n");
 		return ENXIO;
 	case PCI_USBREV_2_0:
 		sc->sc_bus.usbrev = USBREV_2_0;

==== //depot/projects/mpsafetty/sys/kern/kern_exec.c#3 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_exec.c,v 1.319 2008/07/17 16:44:07 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_exec.c,v 1.320 2008/07/25 11:55:32 kib Exp $");
 
 #include "opt_hwpmc_hooks.h"
 #include "opt_kdtrace.h"
@@ -832,10 +832,8 @@
 		crfree(tracecred);
 #endif
 	vn_lock(imgp->vp, LK_EXCLUSIVE | LK_RETRY);
-	if (oldargs != NULL)
-		pargs_drop(oldargs);
-	if (newargs != NULL)
-		pargs_drop(newargs);
+	pargs_drop(oldargs);
+	pargs_drop(newargs);
 	if (oldsigacts != NULL)
 		sigacts_free(oldsigacts);
 

==== //depot/projects/mpsafetty/sys/kern/kern_lock.c#2 (text+ko) ====

@@ -29,7 +29,7 @@
 #include "opt_ddb.h"
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.133 2008/05/25 16:11:27 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_lock.c,v 1.134 2008/07/25 11:22:25 kib Exp $");
 
 #include <sys/param.h>
 #include <sys/ktr.h>
@@ -392,12 +392,12 @@
 			    &contested, &waittime);
 
 			/*
-			 * If the lock is alredy held by curthread in
+			 * If the lock is already held by curthread in
 			 * exclusive way avoid a deadlock.
 			 */
 			if (LK_HOLDER(x) == tid) {
 				LOCK_LOG2(lk,
-				    "%s: %p alredy held in exclusive mode",
+				    "%s: %p already held in exclusive mode",
 				    __func__, lk);
 				error = EDEADLK;
 				break;
@@ -504,7 +504,7 @@
 			    LOP_EXCLUSIVE, file, line);
 
 		/*
-		 * If curthread alredy holds the lock and this one is
+		 * If curthread already holds the lock and this one is
 		 * allowed to recurse, simply recurse on it.
 		 */
 		if (lockmgr_xlocked(lk)) {
@@ -722,7 +722,7 @@
 			    LOP_EXCLUSIVE, file, line);
 
 		/*
-		 * Trying to drain a lock we alredy own will result in a
+		 * Trying to drain a lock we already own will result in a
 		 * deadlock.
 		 */
 		if (lockmgr_xlocked(lk)) {
@@ -863,7 +863,7 @@
 	_lockmgr_assert(lk, KA_XLOCKED | KA_NOTRECURSED, file, line);
 
 	/*
-	 * If the owner is alredy LK_KERNPROC just skip the whole operation.
+	 * If the owner is already LK_KERNPROC just skip the whole operation.
 	 */
 	if (LK_HOLDER(lk->lk_lock) != tid)
 		return;

==== //depot/projects/mpsafetty/sys/kern/kern_proc.c#3 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.264 2008/05/24 06:22:16 jb Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_proc.c,v 1.265 2008/07/25 11:55:32 kib Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kdtrace.h"
@@ -123,6 +123,7 @@
 static void proc_dtor(void *mem, int size, void *arg);
 static int proc_init(void *mem, int size, int flags);
 static void proc_fini(void *mem, int size);
+static void pargs_free(struct pargs *pa);
 
 /*
  * Other process lists
@@ -1180,7 +1181,7 @@
 	return (pa);
 }
 
-void
+static void
 pargs_free(struct pargs *pa)
 {
 

==== //depot/projects/mpsafetty/sys/modules/mem/Makefile#3 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/modules/mem/Makefile,v 1.6 2008/07/22 09:56:45 marius Exp $
+# $FreeBSD: src/sys/modules/mem/Makefile,v 1.7 2008/07/24 14:07:52 marius Exp $
 
 .PATH: ${.CURDIR}/../../dev/mem
 .PATH: ${.CURDIR}/../../${MACHINE}/${MACHINE}
@@ -19,11 +19,16 @@
 
 .if ${MACHINE} == "sun4v"
 SRCS+=		opt_global.h
+
+.if defined(KERNBUILDDIR)
+MKDEP=		-include ${KERNBUILDDIR}/opt_global.h
+.else
 CFLAGS+=	-include opt_global.h
 MKDEP=		-include opt_global.h
 
 opt_global.h:
 	echo "#define SUN4V 1" > ${.TARGET}
 .endif
+.endif
 
 .include <bsd.kmod.mk>

==== //depot/projects/mpsafetty/sys/nfsclient/nfs_vfsops.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vfsops.c,v 1.208 2008/07/22 21:27:22 ed Exp $");
+__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_vfsops.c,v 1.210 2008/07/24 14:02:03 dfr Exp $");
 
 
 #include "opt_bootp.h"
@@ -105,7 +105,7 @@
         downdelayinterval, CTLFLAG_RW, &nfs_tprintf_delay, 0, "");
 
 static void	nfs_decode_args(struct mount *mp, struct nfsmount *nmp,
-		    struct nfs_args *argp);
+		    struct nfs_args *argp, const char *hostname);
 static int	mountnfs(struct nfs_args *, struct mount *,
 		    struct sockaddr *, char *, struct vnode **,
 		    struct ucred *cred);
@@ -540,7 +540,8 @@
 }
 
 static void
-nfs_decode_args(struct mount *mp, struct nfsmount *nmp, struct nfs_args *argp)
+nfs_decode_args(struct mount *mp, struct nfsmount *nmp, struct nfs_args *argp,
+	const char *hostname)
 {
 	int s;
 	int adjsock;
@@ -706,10 +707,13 @@
 			}
 	}
 
-	strlcpy(nmp->nm_hostname, argp->hostname, sizeof(nmp->nm_hostname));
-	p = strchr(nmp->nm_hostname, ':');
-	if (p)
-		*p = '\0';
+	if (hostname) {
+		strlcpy(nmp->nm_hostname, hostname,
+		    sizeof(nmp->nm_hostname));
+		p = strchr(nmp->nm_hostname, ':');
+		if (p)
+			*p = '\0';
+	}
 }
 
 static const char *nfs_opts[] = { "from", "nfs_args",
@@ -799,7 +803,7 @@
 		    ~(NFSMNT_NFSV3 | NFSMNT_NOLOCKD /*|NFSMNT_XLATECOOKIE*/)) |
 		    (nmp->nm_flag &
 			(NFSMNT_NFSV3 | NFSMNT_NOLOCKD /*|NFSMNT_XLATECOOKIE*/));
-		nfs_decode_args(mp, nmp, &args);
+		nfs_decode_args(mp, nmp, &args, NULL);
 		goto out;
 	}
 
@@ -937,7 +941,7 @@
 	nmp->nm_soproto = argp->proto;
 	nmp->nm_rpcops = &nfs_rpcops;
 
-	nfs_decode_args(mp, nmp, argp);
+	nfs_decode_args(mp, nmp, argp, hst);
 
 	/*
 	 * For Connection based sockets (TCP,...) defer the connect until

==== //depot/projects/mpsafetty/sys/sys/proc.h#3 (text+ko) ====

@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)proc.h	8.15 (Berkeley) 5/19/95
- * $FreeBSD: src/sys/sys/proc.h,v 1.515 2008/05/21 09:31:44 kib Exp $
+ * $FreeBSD: src/sys/sys/proc.h,v 1.516 2008/07/25 11:55:32 kib Exp $
  */
 
 #ifndef _SYS_PROC_H_
@@ -795,7 +795,6 @@
 int	p_canwait(struct thread *td, struct proc *p);
 struct	pargs *pargs_alloc(int len);
 void	pargs_drop(struct pargs *pa);
-void	pargs_free(struct pargs *pa);
 void	pargs_hold(struct pargs *pa);
 void	procinit(void);
 void	proc_linkup0(struct proc *p, struct thread *td);

==== //depot/projects/mpsafetty/usr.sbin/setfib/setfib.c#2 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.sbin/setfib/setfib.c,v 1.3 2008/06/04 23:31:53 mlaier Exp $");
+__FBSDID("$FreeBSD: src/usr.sbin/setfib/setfib.c,v 1.4 2008/07/24 18:01:50 julian Exp $");
 
 
 #include <errno.h>
@@ -87,7 +87,7 @@
 		usage();
 
 	errno = 0;
-	if (syscall(175, (int)fib))
+	if (setfib((int)fib))
 		warn("setfib");
 	execvp(*argv, argv);
 	err(errno == ENOENT ? 127 : 126, "%s", *argv);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200807251341.m6PDf9uA079999>