PERFORCE change 61560 for review

Peter Wemm peter at FreeBSD.org
Wed Sep 15 13:25:40 PDT 2004


http://perforce.freebsd.org/chv.cgi?CH=61560

Change 61560 by peter at peter_daintree on 2004/09/15 20:25:15

	IFC @61557

Affected files ...

.. //depot/projects/hammer/UPDATING#55 integrate
.. //depot/projects/hammer/etc/defaults/rc.conf#34 integrate
.. //depot/projects/hammer/etc/rc.d/Makefile#26 integrate
.. //depot/projects/hammer/etc/rc.d/ntpdate#9 branch
.. //depot/projects/hammer/etc/rc.d/rpcbind#6 integrate
.. //depot/projects/hammer/release/Makefile#59 integrate
.. //depot/projects/hammer/sbin/atacontrol/atacontrol.c#12 integrate
.. //depot/projects/hammer/share/man/man5/rc.conf.5#32 integrate
.. //depot/projects/hammer/share/man/man9/vm_map.9#4 integrate
.. //depot/projects/hammer/sys/alpha/isa/isa_dma.c#6 integrate
.. //depot/projects/hammer/sys/amd64/isa/isa_dma.c#14 integrate
.. //depot/projects/hammer/sys/amd64/isa/isa_dma.h#7 delete
.. //depot/projects/hammer/sys/dev/aha/aha_mca.c#8 integrate
.. //depot/projects/hammer/sys/dev/buslogic/bt_mca.c#7 integrate
.. //depot/projects/hammer/sys/dev/nge/if_nge.c#22 integrate
.. //depot/projects/hammer/sys/dev/nge/if_ngereg.h#5 integrate
.. //depot/projects/hammer/sys/dev/pst/pst-iop.h#5 integrate
.. //depot/projects/hammer/sys/dev/pst/pst-pci.c#6 integrate
.. //depot/projects/hammer/sys/dev/pst/pst-raid.c#10 integrate
.. //depot/projects/hammer/sys/i386/isa/isa_dma.c#6 integrate
.. //depot/projects/hammer/sys/i386/isa/isa_dma.h#3 delete
.. //depot/projects/hammer/sys/ia64/isa/isa_dma.c#4 integrate
.. //depot/projects/hammer/sys/isa/isavar.h#4 integrate
.. //depot/projects/hammer/sys/kern/kern_switch.c#28 integrate
.. //depot/projects/hammer/sys/kern/kern_thread.c#64 integrate
.. //depot/projects/hammer/sys/net/if_clone.c#3 integrate
.. //depot/projects/hammer/sys/netinet/ip_icmp.c#20 integrate
.. //depot/projects/hammer/sys/netinet/ip_input.c#39 integrate
.. //depot/projects/hammer/sys/netinet/ip_var.h#21 integrate
.. //depot/projects/hammer/sys/netinet/tcp_syncache.c#22 integrate
.. //depot/projects/hammer/sys/pc98/pc98/isa_dma.c#4 integrate
.. //depot/projects/hammer/sys/sys/mbuf.h#30 integrate
.. //depot/projects/hammer/sys/vm/vm_page.c#34 integrate
.. //depot/projects/hammer/usr.bin/calendar/calendars/calendar.freebsd#25 integrate
.. //depot/projects/hammer/usr.sbin/burncd/burncd.8#9 integrate
.. //depot/projects/hammer/usr.sbin/burncd/burncd.c#8 integrate
.. //depot/projects/hammer/usr.sbin/sysinstall/disks.c#15 integrate

Differences ...

==== //depot/projects/hammer/UPDATING#55 (text+ko) ====

@@ -24,16 +24,6 @@
 	to maximize performance.
 
 20040914:
-	/etc/rc.d/ntpdate has been removed in favor of using the -g
-	flag to ntpd(1).  By default, if ntpd is enabled,  it will sync
-	with the time servers listed in /etc/ntp.conf regardless of the
-	time difference (slew).  To prevent this, add
-	ntpd_sync_on_start="NO" to /etc/rc.conf.
-
-	NOTE: Doing a sync (ntpd -g) is noticably slower than ntpdate(1),
-	but is also more accurate (hence ntpdate(1) being depreciated).
-
-20040914:
 	The format of the pflogd(8) logfile "/var/log/pflog" has changed for
 	architectures that have a 64 bit long type to make it compatible to
 	the standard pcap format. In order to prevent corruption move away
@@ -1869,4 +1859,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.358 2004/09/14 03:01:38 seanc Exp $
+$FreeBSD: src/UPDATING,v 1.359 2004/09/15 01:08:32 seanc Exp $

==== //depot/projects/hammer/etc/defaults/rc.conf#34 (text+ko) ====

@@ -13,7 +13,7 @@
 #
 # All arguments must be in double or single quotes.
 #
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.213 2004/09/14 03:01:38 seanc Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.214 2004/09/15 01:08:32 seanc Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -219,9 +219,12 @@
 ### Network Time Services options: ###
 timed_enable="NO"		# Run the time daemon (or NO).
 timed_flags=""			# Flags to timed (if enabled).
+ntpdate_enable="NO"		# Run ntpdate to sync time on boot (or NO).
+ntpdate_program="/usr/sbin/ntpdate"	# path to ntpdate, if you want a different one.
+ntpdate_flags="-b"		# Flags to ntpdate (if enabled).
 ntpd_enable="NO"		# Run ntpd Network Time Protocol (or NO).
 ntpd_program="/usr/sbin/ntpd"	# path to ntpd, if you want a different one.
-ntpd_sync_on_start="YES"	# Sync time on ntpd startup, even if offset is high
+ntpd_sync_on_start="NO"		# Sync time on ntpd startup, even if offset is high
 ntpd_flags="-p /var/run/ntpd.pid -f /var/db/ntpd.drift"
 				# Flags to ntpd (if enabled).
 

==== //depot/projects/hammer/etc/rc.d/Makefile#26 (text+ko) ====

@@ -1,5 +1,5 @@
 # $NetBSD: Makefile,v 1.16 2001/01/14 15:37:22 minoura Exp $
-# $FreeBSD: src/etc/rc.d/Makefile,v 1.42 2004/09/14 03:01:38 seanc Exp $
+# $FreeBSD: src/etc/rc.d/Makefile,v 1.43 2004/09/15 01:08:33 seanc Exp $
 
 FILES=	DAEMON LOGIN NETWORKING SERVERS \
 	abi accounting addswap adjkerntz amd \
@@ -23,7 +23,7 @@
 	mountd moused mroute6d mrouted msgs \
 	named natd netif netoptions \
 	network_ipv6 nfsclient nfsd \
-	nfslocking nfsserver nisdomain nsswitch ntpd \
+	nfslocking nfsserver nisdomain nsswitch ntpd ntpdate \
 	othermta \
 	pccard pcvt pf pflog preseedrandom \
 	power_profile ppp-user pppoed pwcheck \

==== //depot/projects/hammer/etc/rc.d/rpcbind#6 (text+ko) ====

@@ -1,11 +1,11 @@
 #!/bin/sh
 #
 # $NetBSD: rpcbind,v 1.6 2002/01/31 01:26:06 lukem Exp $
-# $FreeBSD: src/etc/rc.d/rpcbind,v 1.10 2004/09/14 03:01:38 seanc Exp $
+# $FreeBSD: src/etc/rc.d/rpcbind,v 1.11 2004/09/15 01:08:33 seanc Exp $
 #
 
 # PROVIDE: rpcbind
-# REQUIRE: NETWORKING ntpd syslogd named
+# REQUIRE: NETWORKING ntpdate syslogd named
 # KEYWORD: FreeBSD
 
 . /etc/rc.subr

==== //depot/projects/hammer/release/Makefile#59 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/release/Makefile,v 1.860 2004/09/14 04:01:57 brooks Exp $
+# $FreeBSD: src/release/Makefile,v 1.861 2004/09/15 05:14:21 brooks Exp $
 #
 # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \
 #     [RELEASETAG=tag]
@@ -919,8 +919,7 @@
 	@echo 'mfsroot_name="/boot/mfsroot"' >> ${CD_DISC2}/boot/loader.conf
 .if exists(${HINTSFILE})
 	# Break the link to device.hints so we can modify it
-	@rm ${CD_DISC2}/boot/device.hints
-	@cp ${HINTSFILE} ${CD_DISC2}/boot/device.hints
+	@cp -f ${HINTSFILE} ${CD_DISC2}/boot/device.hints
 .if ${TARGET} == "i386" || ${TARGET_ARCH} == "amd64"
 	@echo 'hint.atkbd.0.flags="0x1"' >> ${CD_DISC2}/boot/device.hints
 .endif

==== //depot/projects/hammer/sbin/atacontrol/atacontrol.c#12 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sbin/atacontrol/atacontrol.c,v 1.31 2004/05/20 15:01:26 des Exp $
+ * $FreeBSD: src/sbin/atacontrol/atacontrol.c,v 1.32 2004/09/15 11:22:05 sos Exp $
  */
 
 #include <sys/types.h>
@@ -187,16 +187,18 @@
 		parm->enabled.command1 & ATA_SUPPORT_LOOKAHEAD ? "yes" : "no");
 
 	if (parm->satacapabilities && parm->satacapabilities != 0xffff) {
-		printf("SATA NCQ                       %s	%s	%d/0x%02X\n",
-			parm->satacapabilities & ATA_SUPPORT_NCQ ? "yes" : "no",
-			" -", ATA_QUEUE_LEN(parm->queue),
-			ATA_QUEUE_LEN(parm->queue));
+		printf("Native Command Queuing (NCQ)   %s	%s	%d/0x%02X\n",
+			parm->satacapabilities & ATA_SUPPORT_NCQ ?
+				"yes" : "no", " -",
+			(parm->satacapabilities & ATA_SUPPORT_NCQ) ?
+				ATA_QUEUE_LEN(parm->queue) : 0,
+			(parm->satacapabilities & ATA_SUPPORT_NCQ) ?
+				ATA_QUEUE_LEN(parm->queue) : 0);
 	}
-	else
-		printf("dma queued                     %s	%s	%d/0x%02X\n",
-			parm->support.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no",
-			parm->enabled.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no",
-			ATA_QUEUE_LEN(parm->queue), ATA_QUEUE_LEN(parm->queue));
+	printf("Tagged Command Queuing (TCQ)   %s	%s	%d/0x%02X\n",
+		parm->support.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no",
+		parm->enabled.command2 & ATA_SUPPORT_QUEUED ? "yes" : "no",
+		ATA_QUEUE_LEN(parm->queue), ATA_QUEUE_LEN(parm->queue));
 
 	printf("SMART                          %s	%s\n",
 		parm->support.command1 & ATA_SUPPORT_SMART ? "yes" : "no",

==== //depot/projects/hammer/share/man/man5/rc.conf.5#32 (text+ko) ====

@@ -22,7 +22,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.221 2004/07/18 18:01:48 simon Exp $
+.\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.222 2004/09/15 01:39:25 seanc Exp $
 .\"
 .Dd April 25, 2004
 .Dt RC.CONF 5
@@ -1604,6 +1604,25 @@
 these are the flags to pass to the
 .Xr ntpd 8
 daemon.
+.It Va ntpd_sync_on_start
+.Pq Vt bool
+If set to
+.Dq Li YES ,
+.Xr ntpd 8
+is run with the
+.Op Fl g
+flag, which syncs the system's clock on startup.
+See
+.Xr ntpd 8
+for more information regarding the
+.Op Fl g
+option.
+This is a preferred alternative to using
+.Xr ntpdate 1
+or specifying the
+.Pa /etc/rc.conf
+tunable
+.Op Ar ntpdate_enable .
 .It Va nis_client_enable
 .Pq Vt bool
 If set to

==== //depot/projects/hammer/share/man/man9/vm_map.9#4 (text+ko) ====

@@ -23,7 +23,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/vm_map.9,v 1.4 2004/07/06 07:02:31 ru Exp $
+.\" $FreeBSD: src/share/man/man9/vm_map.9,v 1.5 2004/09/15 18:41:10 alc Exp $
 .\"
 .Dd July 19, 2003
 .Dt VM_MAP 9
@@ -52,17 +52,18 @@
 .Bd -literal -offset indent
 struct vm_map {
         struct vm_map_entry header;
-        struct lock lock;
+        struct sx lock;
         struct mtx system_mtx;
         int nentries;
         vm_size_t size;
+        u_int timestamp;
         u_char needs_wakeup;
         u_char system_map;
-        u_char infork;
+        vm_flags_t flags;
         vm_map_entry_t root;
-        unsigned int timestamp;
-        vm_map_entry_t first_free;
         pmap_t pmap;
+#define min_offset      header.start
+#define max_offset      header.end
 };
 .Ed
 .Pp
@@ -83,23 +84,38 @@
 A count of the members in use within the circular map entry list.
 .It Va size
 Specifies the size of the virtual address space.
-.It Va infork
-Indicates if the map structure is currently undergoing fork processing.
+.It Va timestamp
+Used to determine if the map has changed since its last access.
 .It Va needs_wakeup
 Indicates if a thread is waiting for an allocation within the map.
 Used only by system maps.
 .It Va system_map
 Set to TRUE to indicate that map is a system map; otherwise, it belongs
 to a user process.
+.It Va flags
+Map flags.
 .It Va root
 Root node of a binary search tree used for fast lookup of map entries.
-.It Va timestamp
-Used to determine if the map has changed since its last access.
-.It Va first_free
-Provides a hint to the first free space within the map.
 .It Va pmap
 Pointer to the underlying physical map with which this virtual map
 is associated.
+.It Va min_offset
+The minimum
+.Va vm_offset_t
+in this map.
+Programs should never use
+.Va header.start
+or
+.Va header.end
+directly, use
+.Va min_offset
+and
+.Va max_offset
+instead.
+.It Va max_offset
+The maximum
+.Va vm_offset_t
+in this map.
 .El
 .Pp
 The following flags can be passed to
@@ -141,6 +157,8 @@
         vm_offset_t start;
         vm_offset_t end;
         vm_offset_t avail_ssize;
+        vm_size_t adj_free;
+        vm_size_t max_free;
         union vm_map_object object;
         vm_ooffset_t offset;
         vm_eflags_t eflags;
@@ -171,6 +189,11 @@
 Upper address bound of this entry's region.
 .It Va avail_ssize
 If the entry is for a process stack, specifies how much the entry can grow.
+.It Va adj_free
+The amount of free, unmapped address space adjacent to and immediately
+following this map entry.
+.It Va max_free
+The maximum amount of contiguous free space in this map entry's subtree.
 .It Va object
 Pointer to the
 .Vt struct vm_map_object

==== //depot/projects/hammer/sys/alpha/isa/isa_dma.c#6 (text+ko) ====

@@ -44,7 +44,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/isa/isa_dma.c,v 1.11 2004/04/05 21:00:51 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/isa/isa_dma.c,v 1.12 2004/09/15 12:09:49 phk Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -93,10 +93,8 @@
 /*
  * Setup a DMA channel's bounce buffer.
  */
-void
-isa_dmainit(chan, bouncebufsize)
-	int chan;
-	u_int bouncebufsize;
+int
+isa_dma_init(int chan, u_int bouncebufsize, int flag __unused)
 {
 	static int initted = 0;
 	bus_addr_t boundary = chan >= 4 ? 0x20000 : 0x10000;
@@ -114,10 +112,10 @@
 
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
-		panic("isa_dmainit: channel out of range");
+		panic("isa_dma_init: channel out of range");
 
 	if (dma_tag[chan] || dma_map[chan])
-		panic("isa_dmainit: impossible request"); 
+		panic("isa_dma_init: impossible request"); 
 #endif
 
 	if (bus_dma_tag_create(/*parent*/NULL,
@@ -132,13 +130,13 @@
 			       /*lockfunc*/busdma_lock_mutex,
 			       /*lockarg*/&Giant,
 			       &dma_tag[chan]) != 0) {
-		panic("isa_dmainit: unable to create dma tag\n");
+		panic("isa_dma_init: unable to create dma tag\n");
 	}
 	
 	if (bus_dmamap_create(dma_tag[chan], 0, &dma_map[chan])) {
-		panic("isa_dmainit: unable to create dma map\n");
+		panic("isa_dma_init: unable to create dma map\n");
 	}
-
+	return (0);
 }
 
 /*
@@ -349,7 +347,7 @@
 #endif
 
 	if (!dma_tag || !dma_map[chan])
-		panic("isa_dmastart: called without isa_dmainit");
+		panic("isa_dmastart: called without isa_dma_init");
 
 	dma_busy |= (1 << chan);
 

==== //depot/projects/hammer/sys/amd64/isa/isa_dma.c#14 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.19 2004/08/16 22:51:13 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.20 2004/09/15 12:09:49 phk Exp $");
 
 /*
  * code to manage AT bus
@@ -96,15 +96,13 @@
 /*
  * Setup a DMA channel's bounce buffer.
  */
-void
-isa_dmainit(chan, bouncebufsize)
-	int chan;
-	u_int bouncebufsize;
+int
+isa_dma_init(int chan, u_int bouncebufsize, int flag)
 {
 	void *buf;
 
 	/*
-	 * If a DMA channel is shared, both drivers have to call isa_dmainit
+	 * If a DMA channel is shared, both drivers have to call isa_dma_init
 	 * since they don't know that the other driver will do it.
 	 * Just return if we're already set up good.
 	 * XXX: this only works if they agree on the bouncebuf size.  This
@@ -112,30 +110,30 @@
 	 * XXX: the same driver.
 	 */
 	if (dma_bouncebuf[chan] != NULL)
-		return;
+		return (0);
 
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
-		panic("isa_dmainit: channel out of range");
+		panic("isa_dma_init: channel out of range");
 #endif
 
 	dma_bouncebufsize[chan] = bouncebufsize;
 
 	/* Try malloc() first.  It works better if it works. */
-	buf = malloc(bouncebufsize, M_DEVBUF, M_NOWAIT);
+	buf = malloc(bouncebufsize, M_DEVBUF, flag);
 	if (buf != NULL) {
 		if (isa_dmarangecheck(buf, bouncebufsize, chan) == 0) {
 			dma_bouncebuf[chan] = buf;
-			return;
+			return (0);
 		}
 		free(buf, M_DEVBUF);
 	}
-	buf = contigmalloc(bouncebufsize, M_DEVBUF, M_NOWAIT, 0ul, 0xfffffful,
+	buf = contigmalloc(bouncebufsize, M_DEVBUF, flag, 0ul, 0xfffffful,
 			   1ul, chan & 4 ? 0x20000ul : 0x10000ul);
 	if (buf == NULL)
-		printf("isa_dmainit(%d, %d) failed\n", chan, bouncebufsize);
-	else
-		dma_bouncebuf[chan] = buf;
+		return (ENOMEM);
+	dma_bouncebuf[chan] = buf;
+	return (0);
 }
 
 /*

==== //depot/projects/hammer/sys/dev/aha/aha_mca.c#8 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/aha/aha_mca.c,v 1.11 2004/03/17 17:50:24 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/aha/aha_mca.c,v 1.12 2004/09/15 11:58:34 phk Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -41,7 +41,7 @@
 #include <machine/resource.h>
 #include <sys/rman.h>
 
-#include <i386/isa/isa_dma.h>
+#include <isa/isavar.h>
 
 #include <dev/mca/mca_busreg.h>
 #include <dev/mca/mca_busvar.h>

==== //depot/projects/hammer/sys/dev/buslogic/bt_mca.c#7 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/buslogic/bt_mca.c,v 1.9 2004/03/17 17:50:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/buslogic/bt_mca.c,v 1.10 2004/09/15 11:58:34 phk Exp $");
 
 /*
  * Written using the bt_isa/bt_pci code as a reference.
@@ -55,7 +55,7 @@
 #include <dev/mca/mca_busreg.h>
 #include <dev/mca/mca_busvar.h>
 
-#include <i386/isa/isa_dma.h>
+#include <isa/isavar.h>
 
 #include <dev/buslogic/btreg.h>
 

==== //depot/projects/hammer/sys/dev/nge/if_nge.c#22 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.67 2004/09/14 22:32:58 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/nge/if_nge.c,v 1.68 2004/09/15 03:39:17 alc Exp $");
 
 /*
  * National Semiconductor DP83820/DP83821 gigabit ethernet driver
@@ -151,7 +151,7 @@
 
 static int nge_newbuf(struct nge_softc *, struct nge_desc *, struct mbuf *);
 static int nge_encap(struct nge_softc *, struct mbuf *, u_int32_t *);
-#ifdef VGE_FIXUP_RX
+#ifdef NGE_FIXUP_RX
 static __inline void nge_fixup_rx (struct mbuf *);
 #endif
 static void nge_rxeof(struct nge_softc *);

==== //depot/projects/hammer/sys/dev/nge/if_ngereg.h#5 (text+ko) ====

@@ -30,7 +30,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/nge/if_ngereg.h,v 1.10 2004/09/14 22:06:25 wpaul Exp $
+ * $FreeBSD: src/sys/dev/nge/if_ngereg.h,v 1.11 2004/09/15 03:39:18 alc Exp $
  */
 
 #define NGE_CSR			0x00
@@ -637,7 +637,7 @@
 #define NGE_JUMBO_MTU		(NGE_JUMBO_FRAMELEN-ETHER_HDR_LEN-ETHER_CRC_LEN)
 
 #if !defined(__i386__)
-#define VGE_FIXUP_RX
+#define NGE_FIXUP_RX
 #endif
 
 struct nge_ring_data {

==== //depot/projects/hammer/sys/dev/pst/pst-iop.h#5 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/pst/pst-iop.h,v 1.4 2003/04/28 08:10:27 sos Exp $
+ * $FreeBSD: src/sys/dev/pst/pst-iop.h,v 1.5 2004/09/15 15:39:28 sos Exp $
  */
 
 /* misc defines */
@@ -42,7 +42,6 @@
     struct resource		*r_mem;
     struct resource		*r_irq;
     caddr_t			ibase;
-    u_int32_t			phys_ibase;
     caddr_t			obase;
     u_int32_t			phys_obase;
     struct i2o_registers	*reg;

==== //depot/projects/hammer/sys/dev/pst/pst-pci.c#6 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pst/pst-pci.c,v 1.6 2004/03/17 17:50:39 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pst/pst-pci.c,v 1.7 2004/09/15 15:39:28 sos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -93,7 +93,6 @@
 		     PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, 1);
 
     sc->ibase = rman_get_virtual(sc->r_mem);
-    sc->phys_ibase = vtophys(sc->ibase);
     sc->reg = (struct i2o_registers *)sc->ibase;
     sc->dev = dev;
     mtx_init(&sc->mtx, "pst lock", MTX_DEF, 0);

==== //depot/projects/hammer/sys/dev/pst/pst-raid.c#10 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pst/pst-raid.c,v 1.13 2004/02/18 21:36:52 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pst/pst-raid.c,v 1.14 2004/09/15 15:39:28 sos Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -123,11 +123,11 @@
 
     if (!(psc->info = (struct i2o_bsa_device *)
 	    malloc(sizeof(struct i2o_bsa_device), M_PSTRAID, M_NOWAIT))) {
-	contigfree(reply, PAGE_SIZE, M_PSTRAID);
+	contigfree(reply, PAGE_SIZE, M_PSTIOP);
 	return ENOMEM;
     }
     bcopy(reply->result, psc->info, sizeof(struct i2o_bsa_device));
-    contigfree(reply, PAGE_SIZE, M_PSTRAID);
+    contigfree(reply, PAGE_SIZE, M_PSTIOP);
 
     if (!(reply = iop_get_util_params(psc->iop, psc->lct->local_tid,
 				      I2O_PARAMS_OPERATION_FIELD_GET,
@@ -145,7 +145,7 @@
     bpack(ident->vendor, ident->vendor, 16);
     bpack(ident->product, ident->product, 16);
     sprintf(name, "%s %s", ident->vendor, ident->product);
-    contigfree(reply, PAGE_SIZE, M_PSTRAID);
+    contigfree(reply, PAGE_SIZE, M_PSTIOP);
 
     bioq_init(&psc->queue);
 

==== //depot/projects/hammer/sys/i386/isa/isa_dma.c#6 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/isa/isa_dma.c,v 1.16 2004/07/05 20:37:42 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/isa/isa_dma.c,v 1.17 2004/09/15 12:09:50 phk Exp $");
 
 /*
  * code to manage AT bus
@@ -94,15 +94,13 @@
 /*
  * Setup a DMA channel's bounce buffer.
  */
-void
-isa_dmainit(chan, bouncebufsize)
-	int chan;
-	u_int bouncebufsize;
+int
+isa_dma_init(int chan, u_int bouncebufsize, int flag)
 {
 	void *buf;
 
 	/*
-	 * If a DMA channel is shared, both drivers have to call isa_dmainit
+	 * If a DMA channel is shared, both drivers have to call isa_dma_init
 	 * since they don't know that the other driver will do it.
 	 * Just return if we're already set up good.
 	 * XXX: this only works if they agree on the bouncebuf size.  This
@@ -110,30 +108,30 @@
 	 * XXX: the same driver.
 	 */
 	if (dma_bouncebuf[chan] != NULL)
-		return;
+		return (0);
 
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
-		panic("isa_dmainit: channel out of range");
+		panic("isa_dma_init: channel out of range");
 #endif
 
 	dma_bouncebufsize[chan] = bouncebufsize;
 
 	/* Try malloc() first.  It works better if it works. */
-	buf = malloc(bouncebufsize, M_DEVBUF, M_NOWAIT);
+	buf = malloc(bouncebufsize, M_DEVBUF, flag);
 	if (buf != NULL) {
 		if (isa_dmarangecheck(buf, bouncebufsize, chan) == 0) {
 			dma_bouncebuf[chan] = buf;
-			return;
+			return (0);
 		}
 		free(buf, M_DEVBUF);
 	}
-	buf = contigmalloc(bouncebufsize, M_DEVBUF, M_NOWAIT, 0ul, 0xfffffful,
+	buf = contigmalloc(bouncebufsize, M_DEVBUF, flag, 0ul, 0xfffffful,
 			   1ul, chan & 4 ? 0x20000ul : 0x10000ul);
 	if (buf == NULL)
-		printf("isa_dmainit(%d, %d) failed\n", chan, bouncebufsize);
-	else
-		dma_bouncebuf[chan] = buf;
+		return (ENOMEM);
+	dma_bouncebuf[chan] = buf;
+	return (0);
 }
 
 /*

==== //depot/projects/hammer/sys/ia64/isa/isa_dma.c#4 (text+ko) ====

@@ -31,7 +31,7 @@
  *
  *	from: @(#)isa.c	7.2 (Berkeley) 5/13/91
  *	from: isa_dma.c,v 1.3 1999/05/09 23:56:00 peter Exp $
- * $FreeBSD: src/sys/ia64/isa/isa_dma.c,v 1.6 2004/04/07 20:46:08 imp Exp $
+ * $FreeBSD: src/sys/ia64/isa/isa_dma.c,v 1.7 2004/09/15 12:09:50 phk Exp $
  */
 
 /*
@@ -91,10 +91,8 @@
 /*
  * Setup a DMA channel's bounce buffer.
  */
-void
-isa_dmainit(chan, bouncebufsize)
-	int chan;
-	u_int bouncebufsize;
+int
+isa_dma_init(int chan, u_int bouncebufsize, int flag __unused)
 {
 	static int initted = 0;
 	bus_addr_t boundary = chan >= 4 ? 0x20000 : 0x10000;
@@ -112,10 +110,10 @@
 
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
-		panic("isa_dmainit: channel out of range");
+		panic("isa_dma_init: channel out of range");
 
 	if (dma_tag[chan] || dma_map[chan])
-		panic("isa_dmainit: impossible request"); 
+		panic("isa_dma_init: impossible request"); 
 #endif
 
 	if (bus_dma_tag_create(/*parent*/NULL,
@@ -130,13 +128,14 @@
 			       /*lockfunc*/busdma_lock_mutex,
 			       /*lockarg*/&Giant,
 			       &dma_tag[chan]) != 0) {
-		panic("isa_dmainit: unable to create dma tag\n");
+		panic("isa_dma_init: unable to create dma tag\n");
 	}
 	
 	if (bus_dmamap_create(dma_tag[chan], 0, &dma_map[chan])) {
-		panic("isa_dmainit: unable to create dma map\n");
+		panic("isa_dma_init: unable to create dma map\n");
 	}
 
+	return (0);
 }
 
 /*
@@ -351,7 +350,7 @@
 #endif
 
 	if (!dma_tag || !dma_map[chan])
-		panic("isa_dmastart: called without isa_dmainit");
+		panic("isa_dmastart: called without isa_dma_init");
 
 	dma_busy |= (1 << chan);
 

==== //depot/projects/hammer/sys/isa/isavar.h#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/isa/isavar.h,v 1.25 2003/07/08 18:56:58 jhb Exp $
+ * $FreeBSD: src/sys/isa/isavar.h,v 1.26 2004/09/15 12:09:50 phk Exp $
  */
 
 #ifndef _ISA_ISAVAR_H_
@@ -160,13 +160,19 @@
 
 extern void	isa_dmacascade(int chan);
 extern void	isa_dmadone(int flags, caddr_t addr, int nbytes, int chan);
-extern void	isa_dmainit(int chan, u_int bouncebufsize);
+extern int	isa_dma_init(int chan, u_int bouncebufsize, int flag);
 extern void	isa_dmastart(int flags, caddr_t addr, u_int nbytes, int chan);
 extern int	isa_dma_acquire(int chan);
 extern void	isa_dma_release(int chan);
 extern int	isa_dmastatus(int chan);
 extern int	isa_dmastop(int chan);
 
+#define isa_dmainit(chan, size) do { \
+	if (isa_dma_init(chan, size, M_NOWAIT)) \
+		printf("WARNING: isa_dma_init(%d, %ju) failed\n", \
+		    (int)(chan), (uintmax_t)(size)); \
+	} while (0) 
+
 int	isab_attach(device_t dev);
 
 #ifdef PC98

==== //depot/projects/hammer/sys/kern/kern_switch.c#28 (text+ko) ====

@@ -86,7 +86,7 @@
 ***/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.91 2004/09/13 23:06:39 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.92 2004/09/15 03:51:51 julian Exp $");
 
 #include "opt_sched.h"
 
@@ -224,6 +224,7 @@
 	}
 }
 
+#ifdef	SCHED_4BSD
 /*
  * Remove a thread from its KSEGRP's run queue.
  * This in turn may remove it from a KSE if it was already assigned
@@ -273,6 +274,7 @@
 		/* slot_fill(kg); */ /* will replace it with another */
 	}
 }
+#endif
 
 /*
  * Change the priority of a thread that is on the run queue.

==== //depot/projects/hammer/sys/kern/kern_thread.c#64 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.196 2004/09/05 02:09:53 julian Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.197 2004/09/15 18:39:09 julian Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -829,12 +829,22 @@
 			remaining = p->p_numthreads - p->p_suspcount;
 	}
 	if (force_exit == SINGLE_EXIT) {
+		/*
+		 * We have gotten rid of all the other threads and we
+		 * are about to either exit or exec. In either case,
+		 * we try our utmost  to revert to being a non-threaded
+		 * process.
+		 */
 		upcall_remove(td);
 		p->p_flag &= ~(P_SA|P_HADTHREADS);
 		td->td_mailbox = NULL;
-		td->td_pflags &= ~TDP_SA;
+		td->td_pflags &= ~(TDP_SA | TDP_CAN_UNBIND);
 		p->p_flag &= ~(P_STOPPED_SINGLE | P_SINGLE_EXIT);
 		p->p_singlethread = NULL;
+		if (td->td_standin != NULL) {
+			thread_stash(td->td_standin);
+			td->td_standin = NULL;
+		}
 		sched_set_concurrency(td->td_ksegrp, 1);
 		mtx_unlock_spin(&sched_lock);
 	} else {

==== //depot/projects/hammer/sys/net/if_clone.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)if.c	8.5 (Berkeley) 1/9/95
- * $FreeBSD: src/sys/net/if_clone.c,v 1.2 2004/07/20 21:44:28 mlaier Exp $
+ * $FreeBSD: src/sys/net/if_clone.c,v 1.3 2004/09/15 04:41:56 brooks Exp $
  */
 
 #include <sys/param.h>
@@ -235,9 +235,24 @@
 int
 if_clone_list(struct if_clonereq *ifcr)
 {
-	char outbuf[IFNAMSIZ], *dst;
+	char *buf, *dst, *outbuf = NULL;
 	struct if_clone *ifc;
-	int count, err = 0;
+	int buf_count, count, err = 0;
+
+	IF_CLONERS_LOCK();
+	/*
+	 * Set our internal output buffer size.  We could end up not
+	 * reporting a cloner that is added between the unlock and lock
+	 * below, but that's not a major problem.  Not caping our
+	 * allocation to the number of cloners actually in the system
+	 * could be because that would let arbitrary users cause us to
+	 * allocate abritrary amounts of kernel memory.
+	 */
+	buf_count = (if_cloners_count < ifcr->ifcr_count) ?
+	    if_cloners_count : ifcr->ifcr_count;
+	IF_CLONERS_UNLOCK();
+
+	outbuf = malloc(IFNAMSIZ*buf_count, M_CLONE, M_WAITOK | M_ZERO);
 
 	IF_CLONERS_LOCK();
 
@@ -252,19 +267,21 @@
 		goto done;
 	}
 
-	count = (if_cloners_count < ifcr->ifcr_count) ?
-	    if_cloners_count : ifcr->ifcr_count;
+	count = (if_cloners_count < buf_count) ?
+	    if_cloners_count : buf_count;
 
-	for (ifc = LIST_FIRST(&if_cloners); ifc != NULL && count != 0;
-	     ifc = LIST_NEXT(ifc, ifc_list), count--, dst += IFNAMSIZ) {
-		strlcpy(outbuf, ifc->ifc_name, IFNAMSIZ);
-		err = copyout(outbuf, dst, IFNAMSIZ);
-		if (err)
-			break;
+	for (ifc = LIST_FIRST(&if_cloners), buf = outbuf;
+	    ifc != NULL && count != 0;
+	    ifc = LIST_NEXT(ifc, ifc_list), count--, buf += IFNAMSIZ) {
+		strlcpy(buf, ifc->ifc_name, IFNAMSIZ);
 	}
 
 done:
 	IF_CLONERS_UNLOCK();
+	if (err == 0)
+		err = copyout(outbuf, dst, buf_count*IFNAMSIZ);
+	if (outbuf != NULL)
+		free(outbuf, M_CLONE);
 	return (err);
 }
 

==== //depot/projects/hammer/sys/netinet/ip_icmp.c#20 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)ip_icmp.c	8.2 (Berkeley) 1/4/94
- * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.96 2004/08/16 18:32:07 rwatson Exp $
+ * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.97 2004/09/15 20:13:26 andre Exp $
  */
 
 #include "opt_ipsec.h"
@@ -711,7 +711,7 @@
 		 * add on any record-route or timestamp options.
 		 */
 		cp = (u_char *) (ip + 1);
-		if ((opts = ip_srcroute()) == 0 &&
+		if ((opts = ip_srcroute(m)) == 0 &&
 		    (opts = m_gethdr(M_DONTWAIT, MT_HEADER))) {
 			opts->m_len = sizeof(struct in_addr);
 			mtod(opts, struct in_addr *)->s_addr = 0;

==== //depot/projects/hammer/sys/netinet/ip_input.c#39 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)ip_input.c	8.2 (Berkeley) 1/4/94
- * $FreeBSD: src/sys/netinet/ip_input.c,v 1.286 2004/08/27 15:16:22 andre Exp $
+ * $FreeBSD: src/sys/netinet/ip_input.c,v 1.287 2004/09/15 20:13:26 andre Exp $
  */
 
 #include "opt_bootp.h"
@@ -213,28 +213,22 @@
 int fw_one_pass = 1;
 
 /*
- * XXX this is ugly -- the following two global variables are
- * used to store packet state while it travels through the stack.
- * Note that the code even makes assumptions on the size and
- * alignment of fields inside struct ip_srcrt so e.g. adding some
- * fields will break the code. This needs to be fixed.
- *
- * We need to save the IP options in case a protocol wants to respond
- * to an incoming packet over the same route if the packet got here
- * using IP source routing.  This allows connection establishment and
- * maintenance when the remote end is on a network that is not known
- * to us.
- * XXX: Broken on SMP and possibly preemption!
+ * XXX this is ugly.  IP options source routing magic.
  */
-static int	ip_nhops = 0;
-static	struct ip_srcrt {
+struct ipoptrt {
 	struct	in_addr dst;			/* final destination */
 	char	nop;				/* one NOP to align */
 	char	srcopt[IPOPT_OFFSET + 1];	/* OPTVAL, OLEN and OFFSET */
 	struct	in_addr route[MAX_IPOPTLEN/sizeof(struct in_addr)];
-} ip_srcrt;
+};
+
+struct ipopt_tag {
+	struct	m_tag tag;
+	int	ip_nhops;
+	struct	ipoptrt ip_srcrt;
+};
 
-static void	save_rte(u_char *, struct in_addr);
+static void	save_rte(struct mbuf *, u_char *, struct in_addr);
 static int	ip_dooptions(struct mbuf *m, int);
 static void	ip_forward(struct mbuf *m, int srcrt);
 static void	ip_freef(struct ipqhead *, struct ipq *);
@@ -1244,7 +1238,7 @@
 				 */
 				if (!ip_acceptsourceroute)
 					goto nosourcerouting;

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list