PERFORCE change 135414 for review

John Birrell jb at FreeBSD.org
Thu Feb 14 13:21:29 PST 2008


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

Change 135414 by jb at jb_freebsd1 on 2008/02/14 21:20:34

	IFC

Affected files ...

.. //depot/projects/dtrace/src/lib/libthr/thread/thr_mutex.c#19 integrate
.. //depot/projects/dtrace/src/lib/msun/src/e_hypot.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/e_hypotf.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/e_pow.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/e_powf.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_ceil.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_ceill.c#5 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_floor.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_floorl.c#5 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_trunc.c#4 integrate
.. //depot/projects/dtrace/src/lib/msun/src/s_truncl.c#6 integrate
.. //depot/projects/dtrace/src/share/man/man4/sk.4#5 integrate
.. //depot/projects/dtrace/src/share/man/man9/lock.9#11 integrate
.. //depot/projects/dtrace/src/sys/dev/coretemp/coretemp.c#4 integrate
.. //depot/projects/dtrace/src/sys/dev/mxge/if_mxge.c#14 integrate
.. //depot/projects/dtrace/src/sys/dev/mxge/if_mxge_var.h#9 integrate
.. //depot/projects/dtrace/src/sys/ia64/ia64/machdep.c#15 integrate
.. //depot/projects/dtrace/src/sys/ia64/ia64/pmap.c#13 integrate
.. //depot/projects/dtrace/src/sys/kern/kern_descrip.c#21 integrate
.. //depot/projects/dtrace/src/sys/kern/uipc_syscalls.c#25 integrate
.. //depot/projects/dtrace/src/sys/kern/vfs_mount.c#26 integrate
.. //depot/projects/dtrace/src/usr.bin/netstat/route.c#12 integrate
.. //depot/projects/dtrace/src/usr.sbin/rpcbind/rpcbind.c#7 integrate
.. //depot/projects/dtrace/www/en/search/search.sgml#6 integrate
.. //depot/projects/dtrace/www/share/sgml/advisories.xml#17 integrate

Differences ...

==== //depot/projects/dtrace/src/lib/libthr/thread/thr_mutex.c#19 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.70 2008/02/06 20:43:19 des Exp $
+ * $FreeBSD: src/lib/libthr/thread/thr_mutex.c,v 1.71 2008/02/14 12:37:58 des Exp $
  */
 
 #include "namespace.h"
@@ -876,5 +876,5 @@
 		if (__predict_false(ret))
 			return (ret);
 	}
-	return ((*mutex)->m_lock.m_owner == TID(curthread));
+	return ((*mutex)->m_owner == curthread);
 }

==== //depot/projects/dtrace/src/lib/msun/src/e_hypot.c#4 (text+ko) ====

@@ -11,9 +11,8 @@
  * ====================================================
  */
 
-#ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_hypot.c,v 1.9 2005/02/04 18:26:05 das Exp $";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/lib/msun/src/e_hypot.c,v 1.10 2008/02/14 13:44:03 bde Exp $");
 
 /* __ieee754_hypot(x,y)
  *
@@ -68,7 +67,8 @@
 	if(ha > 0x5f300000) {	/* a>2**500 */
 	   if(ha >= 0x7ff00000) {	/* Inf or NaN */
 	       u_int32_t low;
-	       w = a+b;			/* for sNaN */
+	       /* Use original arg order iff result is NaN; quieten sNaNs. */
+	       w = fabs(x+0.0)+fabs(y+0.0);
 	       GET_LOW_WORD(low,a);
 	       if(((ha&0xfffff)|low)==0) w = a;
 	       GET_LOW_WORD(low,b);

==== //depot/projects/dtrace/src/lib/msun/src/e_hypotf.c#4 (text+ko) ====

@@ -13,9 +13,8 @@
  * ====================================================
  */
 
-#ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_hypotf.c,v 1.9 2002/05/28 18:15:03 alfred Exp $";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/lib/msun/src/e_hypotf.c,v 1.10 2008/02/14 13:44:03 bde Exp $");
 
 #include "math.h"
 #include "math_private.h"
@@ -37,7 +36,8 @@
 	k=0;
 	if(ha > 0x58800000) {	/* a>2**50 */
 	   if(ha >= 0x7f800000) {	/* Inf or NaN */
-	       w = a+b;			/* for sNaN */
+	       /* Use original arg order iff result is NaN; quieten sNaNs. */
+	       w = fabsf(x+0.0F)+fabsf(y+0.0F);
 	       if(ha == 0x7f800000) w = a;
 	       if(hb == 0x7f800000) w = b;
 	       return w;

==== //depot/projects/dtrace/src/lib/msun/src/e_pow.c#4 (text+ko) ====

@@ -9,9 +9,8 @@
  * ====================================================
  */
 
-#ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_pow.c,v 1.11 2005/02/04 18:26:06 das Exp $";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/lib/msun/src/e_pow.c,v 1.13 2008/02/14 12:56:35 bde Exp $");
 
 /* __ieee754_pow(x,y) return x**y
  *
@@ -110,10 +109,10 @@
     /* y==zero: x**0 = 1 */
 	if((iy|ly)==0) return one; 	
 
-    /* +-NaN return x+y */
+    /* y!=zero: result is NaN if either arg is NaN */
 	if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) ||
 	   iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) 
-		return x+y;	
+		return (x+0.0)+(y+0.0);
 
     /* determine if y is an odd int when x < 0
      * yisint = 0	... y is not an integer

==== //depot/projects/dtrace/src/lib/msun/src/e_powf.c#4 (text+ko) ====

@@ -13,9 +13,8 @@
  * ====================================================
  */
 
-#ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/e_powf.c,v 1.12 2004/06/01 19:33:30 bde Exp $";
-#endif
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: src/lib/msun/src/e_powf.c,v 1.15 2008/02/14 12:56:35 bde Exp $");
 
 #include "math.h"
 #include "math_private.h"
@@ -47,8 +46,8 @@
 lg2_l  =  1.42860654e-06, /* 0x35bfbe8c */
 ovt =  4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
 cp    =  9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
-cp_h  =  9.6179199219e-01, /* 0x3f763800 =head of cp */
-cp_l  =  4.7017383622e-06, /* 0x369dc3a0 =tail of cp_h */
+cp_h  =  9.6191406250e-01, /* 0x3f764000 =12b cp */
+cp_l  = -1.1736857402e-04, /* 0xb8f623c6 =tail of cp_h */
 ivln2    =  1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
 ivln2_h  =  1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
 ivln2_l  =  7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
@@ -68,10 +67,10 @@
     /* y==zero: x**0 = 1 */
 	if(iy==0) return one;
 
-    /* +-NaN return x+y */
+    /* y!=zero: result is NaN if either arg is NaN */
 	if(ix > 0x7f800000 ||
 	   iy > 0x7f800000)
-		return x+y;
+		return (x+0.0F)+(y+0.0F);
 
     /* determine if y is an odd int when x < 0
      * yisint = 0	... y is not an integer

==== //depot/projects/dtrace/src/lib/msun/src/s_ceil.c#4 (text+ko) ====

@@ -11,7 +11,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/s_ceil.c,v 1.9 2003/07/23 04:53:46 peter Exp $";
+static char rcsid[] = "$FreeBSD: src/lib/msun/src/s_ceil.c,v 1.10 2008/02/14 15:10:33 bde Exp $";
 #endif
 
 /*
@@ -70,3 +70,7 @@
 	INSERT_WORDS(x,i0,i1);
 	return x;
 }
+
+#if LDBL_MANT_DIG == 53
+__weak_reference(ceil, ceill);
+#endif

==== //depot/projects/dtrace/src/lib/msun/src/s_ceill.c#5 (text+ko) ====

@@ -12,7 +12,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_ceill.c,v 1.8 2008/02/13 18:16:43 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_ceill.c,v 1.9 2008/02/14 15:10:33 bde Exp $");
 
 /*
  * ceill(x)
@@ -99,7 +99,3 @@
 	}
 	return (u.e);
 }
-
-#if LDBL_MANT_DIG == 53
-__weak_reference(ceil, ceill);
-#endif

==== //depot/projects/dtrace/src/lib/msun/src/s_floor.c#4 (text+ko) ====

@@ -11,7 +11,7 @@
  */
 
 #ifndef lint
-static char rcsid[] = "$FreeBSD: src/lib/msun/src/s_floor.c,v 1.9 2003/07/23 04:53:46 peter Exp $";
+static char rcsid[] = "$FreeBSD: src/lib/msun/src/s_floor.c,v 1.10 2008/02/14 15:10:34 bde Exp $";
 #endif
 
 /*
@@ -71,3 +71,7 @@
 	INSERT_WORDS(x,i0,i1);
 	return x;
 }
+
+#if LDBL_MANT_DIG == 53
+__weak_reference(floor, floorl);
+#endif

==== //depot/projects/dtrace/src/lib/msun/src/s_floorl.c#5 (text+ko) ====

@@ -12,7 +12,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_floorl.c,v 1.7 2008/02/13 18:16:43 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_floorl.c,v 1.8 2008/02/14 15:10:34 bde Exp $");
 
 /*
  * floorl(x)
@@ -99,7 +99,3 @@
 	}
 	return (u.e);
 }
-
-#if LDBL_MANT_DIG == 53
-__weak_reference(floor, floorl);
-#endif

==== //depot/projects/dtrace/src/lib/msun/src/s_trunc.c#4 (text+ko) ====

@@ -11,7 +11,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_trunc.c,v 1.1 2004/06/20 09:25:43 das Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_trunc.c,v 1.2 2008/02/14 15:10:34 bde Exp $");
 
 /*
  * trunc(x)
@@ -59,3 +59,7 @@
 	INSERT_WORDS(x,i0,i1);
 	return x;
 }
+
+#if LDBL_MANT_DIG == 53
+__weak_reference(trunc, truncl);
+#endif

==== //depot/projects/dtrace/src/lib/msun/src/s_truncl.c#6 (text+ko) ====

@@ -12,7 +12,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/msun/src/s_truncl.c,v 1.8 2008/02/13 18:16:43 bde Exp $");
+__FBSDID("$FreeBSD: src/lib/msun/src/s_truncl.c,v 1.9 2008/02/14 15:10:34 bde Exp $");
 
 /*
  * truncl(x)
@@ -66,7 +66,3 @@
 	}
 	return (u.e);
 }
-
-#if LDBL_MANT_DIG == 53
-__weak_reference(trunc, truncl);
-#endif

==== //depot/projects/dtrace/src/share/man/man4/sk.4#5 (text+ko) ====

@@ -28,9 +28,9 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 .\" THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man4/sk.4,v 1.30 2007/01/30 08:40:04 brueffer Exp $
+.\" $FreeBSD: src/share/man/man4/sk.4,v 1.31 2008/02/14 10:01:48 brueffer Exp $
 .\"
-.Dd July 16, 2005
+.Dd February 14, 2008
 .Dt SK 4
 .Os
 .Sh NAME
@@ -191,17 +191,28 @@
 .It
 SMC 9452TX single port, 1000baseT adapter
 .El
+.Sh LOADER TUNABLES
+Tunables can be set at the
+.Xr loader 8
+prompt before booting the kernel or stored in
+.Xr loader.conf 5 .
+.Bl -tag -width xxxxxx
+.It Va hw.skc.jumbo_disable
+Disable jumbo frame support.
+Systems with less memory can set it to a non-zero value to save memory.
+The default value is 0.
+.El
 .Sh SYSCTL VARIABLES
 The following variable is available as both
 .Xr sysctl 8
 variable and
 .Xr loader 8
 tunable:
-.Bl -tag -width indent
+.Bl -tag -width xxxxxx
 .It Va dev.skc.%d.int_mod
-.Pp
 This variable controls interrupt moderation.
-The accepted range is 10 to 10000, default value is 100 microseconds.
+The accepted range is 10 to 10000.
+The default value is 100 microseconds.
 The interface has to be brought down and up again before a change takes effect.
 .El
 .Sh DIAGNOSTICS

==== //depot/projects/dtrace/src/share/man/man9/lock.9#11 (text+ko) ====

@@ -24,7 +24,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 .\" DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/lock.9,v 1.24 2008/02/13 21:54:16 attilio Exp $
+.\" $FreeBSD: src/share/man/man9/lock.9,v 1.25 2008/02/14 19:39:09 brueffer Exp $
 .\"
 .Dd February 13, 2008
 .Dt LOCK 9
@@ -239,7 +239,7 @@
 .Vt lkp
 lock pointed to by the first argument.
 .It Dv KA_HELD
-Assert that the a not specified thread has a lock on the
+Assert that an unspecified thread has a lock on the
 .Vt lkp
 lock pointed to by the first argument.
 .It Dv KA_UNHELD
@@ -260,16 +260,18 @@
 Assert that the current thread has a recursed lock on
 .Fa lkp .
 .It Dv KA_NOTRECURSED
-Assert that the current thread has not a recursed lock on
+Assert that the current thread does not have a recursed lock on
 .Fa lkp .
 .El
 .Pp
-It also worths note that
+Note that
 .Dv KA_HELD
 and
 .Dv KA_UNHELD
-usage is highly discouraged.  They are intended to cater a bad behaviour
-introduced by buffer cache locks handling and hopefully they will be
+usage is highly discouraged.
+They are intended to cater a bad behaviour
+introduced by buffer cache lock handling.
+They will hopefully be
 made useless by revisiting such locks.
 .Sh RETURN VALUES
 The

==== //depot/projects/dtrace/src/sys/dev/coretemp/coretemp.c#4 (text+ko) ====

@@ -23,7 +23,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/dev/coretemp/coretemp.c,v 1.5 2008/01/10 16:09:22 rpaulo Exp $
+ * $FreeBSD: src/sys/dev/coretemp/coretemp.c,v 1.6 2008/02/14 14:14:59 rpaulo Exp $
  *
  */
 
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/coretemp/coretemp.c,v 1.5 2008/01/10 16:09:22 rpaulo Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/coretemp/coretemp.c,v 1.6 2008/02/14 14:14:59 rpaulo Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -143,6 +143,15 @@
 	cpu_model += ((cpu_id >> 16) & 0xf) << 4;
 	cpu_mask = cpu_id & 15;
 
+	/*
+	 * Some CPUs, namely the PIII, don't have thermal sensors, but
+	 * report them when the CPUID check is performed in
+	 * coretemp_identify(). This leads to a later GPF when the sensor
+	 * is queried via a MSR, so we stop here.
+	 */
+	if (cpu_model < 0xe)
+		return (ENXIO);
+	
 #if 0 /*
        * XXXrpaulo: I have this CPU model and when it returns from C3
        * coretemp continues to function properly.

==== //depot/projects/dtrace/src/sys/dev/mxge/if_mxge.c#14 (text+ko) ====

@@ -28,7 +28,7 @@
 ***************************************************************************/
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.46 2008/02/14 00:09:59 gallatin Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/mxge/if_mxge.c,v 1.47 2008/02/14 16:24:14 gallatin Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -2685,7 +2685,7 @@
 	}
 	valid = stats->valid;
 
-	if (!sc->msi_enabled) {
+	if (sc->legacy_irq) {
 		/* lower legacy IRQ  */
 		*sc->irq_deassert = 0;
 		if (!mxge_deassert_wait)
@@ -2705,6 +2705,8 @@
 			mxge_clean_rx_done(ss);
 			send_done_count = be32toh(stats->send_done_count);
 		}
+		if (sc->legacy_irq && mxge_deassert_wait)
+			mb();
 	} while (*((volatile uint8_t *) &stats->valid));
 
 	if (__predict_false(stats->stats_updated)) {
@@ -4035,9 +4037,9 @@
 	count = pci_msi_count(sc->dev);
 	if (count == 1 && pci_alloc_msi(sc->dev, &count) == 0) {
 		rid = 1;
-		sc->msi_enabled = 1;
 	} else {
 		rid = 0;
+		sc->legacy_irq = 1;
 	}
 	sc->irq_res = bus_alloc_resource(sc->dev, SYS_RES_IRQ, &rid, 0, ~0,
 					 1, RF_SHAREABLE | RF_ACTIVE);
@@ -4047,7 +4049,7 @@
 	}
 	if (mxge_verbose)
 		device_printf(sc->dev, "using %s irq %ld\n",
-			      sc->msi_enabled ? "MSI" : "INTx",
+			      sc->legacy_irq ? "INTx" : "MSI",
 			      rman_get_start(sc->irq_res));
 	err = bus_setup_intr(sc->dev, sc->irq_res, 
 			     INTR_TYPE_NET | INTR_MPSAFE,
@@ -4057,8 +4059,8 @@
 			     mxge_intr, &sc->ss[0], &sc->ih);
 	if (err != 0) {
 		bus_release_resource(sc->dev, SYS_RES_IRQ,
-				     sc->msi_enabled ? 1 : 0, sc->irq_res);
-		if (sc->msi_enabled)
+				     sc->legacy_irq ? 0 : 1, sc->irq_res);
+		if (!sc->legacy_irq)
 			pci_release_msi(sc->dev);
 	}
 	return err;
@@ -4099,8 +4101,8 @@
 {
 	bus_teardown_intr(sc->dev, sc->irq_res, sc->ih);
 	bus_release_resource(sc->dev, SYS_RES_IRQ,
-			     sc->msi_enabled ? 1 : 0, sc->irq_res);
-	if (sc->msi_enabled)
+			     sc->legacy_irq ? 0 : 1, sc->irq_res);
+	if (!sc->legacy_irq)
 		pci_release_msi(sc->dev);
 }
 

==== //depot/projects/dtrace/src/sys/dev/mxge/if_mxge_var.h#9 (text+ko) ====

@@ -25,7 +25,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/mxge/if_mxge_var.h,v 1.19 2008/02/14 00:09:59 gallatin Exp $
+$FreeBSD: src/sys/dev/mxge/if_mxge_var.h,v 1.20 2008/02/14 16:24:14 gallatin Exp $
 
 ***************************************************************************/
 
@@ -206,7 +206,7 @@
 	mxge_dma_t cmd_dma;
 	mxge_dma_t zeropad_dma;
 	struct pci_dev *pdev;
-	int msi_enabled;
+	int legacy_irq;
 	int link_state;
 	unsigned int rdma_tags_available;
 	int intr_coal_delay;

==== //depot/projects/dtrace/src/sys/ia64/ia64/machdep.c#15 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.229 2008/02/04 02:21:33 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.230 2008/02/14 18:46:50 marcel Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"
@@ -100,6 +100,9 @@
 
 #include <i386/include/specialreg.h>
 
+/* XXX fc.i kluge (quick fix) */
+extern int ia64_icache_sync_kluge;
+
 u_int64_t processor_frequency;
 u_int64_t bus_frequency;
 u_int64_t itc_frequency;
@@ -218,6 +221,9 @@
 		}
 		break;
 	case 0x20:
+		/* XXX fc.i kluge (quick fix) */
+		ia64_icache_sync_kluge = 1;
+
 		family_name = "Itanium 2";
 		switch (model) {
 		case 0x00:

==== //depot/projects/dtrace/src/sys/ia64/ia64/pmap.c#13 (text+ko) ====

@@ -46,7 +46,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.196 2008/01/03 07:34:33 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/ia64/ia64/pmap.c,v 1.197 2008/02/14 18:46:50 marcel Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -118,6 +118,9 @@
 /* XXX move to a header. */
 extern uint64_t ia64_gateway_page[];
 
+/* XXX fc.i kluge (quick fix) */
+int ia64_icache_sync_kluge;
+
 MALLOC_DEFINE(M_PMAP, "PMAP", "PMAP Structures");
 
 #ifndef PMAP_SHPGPERPROC
@@ -1183,6 +1186,7 @@
 pmap_set_pte(struct ia64_lpte *pte, vm_offset_t va, vm_offset_t pa,
     boolean_t wired, boolean_t managed)
 {
+	vm_offset_t lim;
 
 	pte->pte &= PTE_PROT_MASK | PTE_PL_MASK | PTE_AR_MASK | PTE_ED;
 	pte->pte |= PTE_PRESENT | PTE_MA_WB;
@@ -1193,6 +1197,15 @@
 	pte->itir = PAGE_SHIFT << 2;
 
 	pte->tag = ia64_ttag(va);
+
+	/* XXX fc.i kluge (quick fix) */
+	if (ia64_icache_sync_kluge) {
+		lim = va + PAGE_SIZE;
+		while (va < lim) {
+			__asm __volatile("fc.i %0" :: "r"(va));
+			va += 32;
+		}
+	}
 }
 
 /*

==== //depot/projects/dtrace/src/sys/kern/kern_descrip.c#21 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.322 2008/02/09 05:16:25 marcus Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.323 2008/02/14 11:44:31 simon Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"
@@ -2050,7 +2050,7 @@
 	int error;
 
 	*vpp = NULL;
-	if ((error = _fget(td, fd, &fp, 0, 0)) != 0)
+	if ((error = _fget(td, fd, &fp, flags, 0)) != 0)
 		return (error);
 	if (fp->f_vnode == NULL) {
 		error = EINVAL;

==== //depot/projects/dtrace/src/sys/kern/uipc_syscalls.c#25 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.266 2008/02/03 15:54:40 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/uipc_syscalls.c,v 1.267 2008/02/14 11:44:31 simon Exp $");
 
 #include "opt_sctp.h"
 #include "opt_compat.h"
@@ -1796,20 +1796,23 @@
 		goto out;
 	vfslocked = VFS_LOCK_GIANT(vp->v_mount);
 	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
-	obj = vp->v_object;
-	if (obj != NULL) {
-		/*
-		 * Temporarily increase the backing VM object's reference
-		 * count so that a forced reclamation of its vnode does not
-		 * immediately destroy it.
-		 */
-		VM_OBJECT_LOCK(obj);
-		if ((obj->flags & OBJ_DEAD) == 0) {
-			vm_object_reference_locked(obj);
-			VM_OBJECT_UNLOCK(obj);
-		} else {
-			VM_OBJECT_UNLOCK(obj);
-			obj = NULL;
+	if (vp->v_type == VREG) {
+		obj = vp->v_object;
+		if (obj != NULL) {
+			/*
+			 * Temporarily increase the backing VM
+			 * object's reference count so that a forced
+			 * reclamation of its vnode does not
+			 * immediately destroy it.
+			 */
+			VM_OBJECT_LOCK(obj);
+			if ((obj->flags & OBJ_DEAD) == 0) {
+				vm_object_reference_locked(obj);
+				VM_OBJECT_UNLOCK(obj);
+			} else {
+				VM_OBJECT_UNLOCK(obj);
+				obj = NULL;
+			}
 		}
 	}
 	VOP_UNLOCK(vp, 0);

==== //depot/projects/dtrace/src/sys/kern/vfs_mount.c#26 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.273 2008/01/24 12:34:28 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_mount.c,v 1.274 2008/02/14 17:04:31 yar Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -1723,10 +1723,11 @@
 		strcpy(path, ROOTNAME);
 
 	error = kernel_vmount(
-	    MNT_RDONLY | MNT_ROOTFS,
+	    MNT_ROOTFS,
 	    "fstype", vfsname,
 	    "fspath", "/",
 	    "from", path,
+	    "ro", NULL,
 	    NULL);
 	if (error == 0) {
 		/*
@@ -2213,7 +2214,7 @@
 /*
  * Plain argument.
  *
- * If length is -1, use printf.
+ * If length is -1, treat value as a C string.
  */
 struct mntarg *
 mount_arg(struct mntarg *ma, const char *name, const void *val, int len)
@@ -2300,7 +2301,7 @@
 		if (cp == NULL)
 			break;
 		vp = va_arg(ap, const void *);
-		ma = mount_arg(ma, cp, vp, -1);
+		ma = mount_arg(ma, cp, vp, (vp != NULL ? -1 : 0));
 	}
 	va_end(ap);
 

==== //depot/projects/dtrace/src/usr.bin/netstat/route.c#12 (text+ko) ====

@@ -38,7 +38,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/netstat/route.c,v 1.87 2008/02/11 20:34:27 marius Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/netstat/route.c,v 1.88 2008/02/14 20:01:52 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/protosw.h>
@@ -164,11 +164,13 @@
 			return;
 		}
 
-		kget(rtree, rt_tables);
+		if (kget(rtree, rt_tables) != 0)
+			return;
 		for (i = 0; i <= AF_MAX; i++) {
 			if ((rnh = rt_tables[i]) == 0)
 				continue;
-			kget(rnh, head);
+			if (kget(rnh, head) != 0)
+				continue;
 			if (i == AF_UNSPEC) {
 				if (Aflag && af == 0) {
 					printf("Netmasks:\n");
@@ -269,10 +271,14 @@
 size_cols_tree(struct radix_node *rn)
 {
 again:
-	kget(rn, rnode);
+	if (kget(rn, rnode) != 0)
+		return;
+	if (!(rnode.rn_flags & RNF_ACTIVE))
+		return;
 	if (rnode.rn_bit < 0) {
 		if ((rnode.rn_flags & RNF_ROOT) == 0) {
-			kget(rn, rtentry);
+			if (kget(rn, rtentry) != 0)
+				return;
 			size_cols_rtentry(&rtentry);
 		}
 		if ((rn = rnode.rn_dupedkey))
@@ -299,7 +305,8 @@
 	 * Don't print protocol-cloned routes unless -a.
 	 */
 	if (rt->rt_flags & RTF_WASCLONED && !aflag) {
-		kget(rt->rt_parent, parent);
+		if (kget(rt->rt_parent, parent) != 0)
+			return;
 		if (parent.rt_flags & RTF_PRCLONING)
 			return;
 	}
@@ -335,9 +342,11 @@
 	}
 	if (rt->rt_ifp) {
 		if (rt->rt_ifp != lastif) {
-			kget(rt->rt_ifp, ifnet);
+			if (kget(rt->rt_ifp, ifnet) == 0) 
+				len = strlen(ifnet.if_xname);
+			else
+				len = strlen("---");
 			lastif = rt->rt_ifp;
-			len = strlen(ifnet.if_xname);
 			wid_if = MAX(len, wid_if);
 		}
 		if (rt->rt_rmx.rmx_expire) {
@@ -398,7 +407,8 @@
 kgetsa(struct sockaddr *dst)
 {
 
-	kget(dst, pt_u.u_sa);
+	if (kget(dst, pt_u.u_sa) != 0)
+		return (NULL);
 	if (pt_u.u_sa.sa_len > sizeof (pt_u.u_sa))
 		kread((u_long)dst, (char *)pt_u.u_data, pt_u.u_sa.sa_len);
 	return (&pt_u.u_sa);
@@ -409,7 +419,10 @@
 {
 
 again:
-	kget(rn, rnode);
+	if (kget(rn, rnode) != 0)
+		return;
+	if (!(rnode.rn_flags & RNF_ACTIVE))
+		return;
 	if (rnode.rn_bit < 0) {
 		if (Aflag)
 			printf("%-8.8lx ", (u_long)rn);
@@ -418,10 +431,11 @@
 				printf("(root node)%s",
 				    rnode.rn_dupedkey ? " =>\n" : "\n");
 		} else if (do_rtent) {
-			kget(rn, rtentry);
-			p_rtentry(&rtentry);
-			if (Aflag)
-				p_rtnode();
+			if (kget(rn, rtentry) == 0) {
+				p_rtentry(&rtentry);
+				if (Aflag)
+					p_rtnode();
+			}
 		} else {
 			p_sockaddr(kgetsa((struct sockaddr *)rnode.rn_key),
 				   NULL, 0, 44);
@@ -459,16 +473,19 @@
 		printf("%6.6s %8.8lx : %8.8lx", nbuf, (u_long)rnode.rn_left, (u_long)rnode.rn_right);
 	}
 	while (rm) {
-		kget(rm, rmask);
+		if (kget(rm, rmask) != 0)
+			break;
 		sprintf(nbuf, " %d refs, ", rmask.rm_refs);
 		printf(" mk = %8.8lx {(%d),%s",
 			(u_long)rm, -1 - rmask.rm_bit, rmask.rm_refs ? nbuf : " ");
 		if (rmask.rm_flags & RNF_NORMAL) {
 			struct radix_node rnode_aux;
 			printf(" <normal>, ");
-			kget(rmask.rm_leaf, rnode_aux);
-			p_sockaddr(kgetsa((struct sockaddr *)rnode_aux.rn_mask),
+			if (kget(rmask.rm_leaf, rnode_aux) == 0)
+				p_sockaddr(kgetsa((struct sockaddr *)rnode_aux.rn_mask),
 				    NULL, 0, -1);
+			else
+				p_sockaddr(NULL, NULL, 0, -1);
 		} else
 		    p_sockaddr(kgetsa((struct sockaddr *)rmask.rm_mask),
 				NULL, 0, -1);
@@ -572,6 +589,9 @@
 	static char workbuf[128];
 	const char *cp;
 
+	if (sa == NULL)
+		return ("null");
+
 	switch(sa->sa_family) {
 	case AF_INET:
 	    {
@@ -729,7 +749,8 @@
 	 * Don't print protocol-cloned routes unless -a.
 	 */
 	if (rt->rt_flags & RTF_WASCLONED && !aflag) {
-		kget(rt->rt_parent, parent);
+		if (kget(rt->rt_parent, parent) != 0)
+			return;
 		if (parent.rt_flags & RTF_PRCLONING)
 			return;
 	}
@@ -756,9 +777,12 @@
 	}
 	if (rt->rt_ifp) {
 		if (rt->rt_ifp != lastif) {
-			kget(rt->rt_ifp, ifnet);
+			if (kget(rt->rt_ifp, ifnet) == 0)
+				strlcpy(prettyname, ifnet.if_xname,
+				    sizeof(prettyname));
+			else
+				strlcpy(prettyname, "---", sizeof(prettyname));
 			lastif = rt->rt_ifp;
-			strlcpy(prettyname, ifnet.if_xname, sizeof(prettyname));
 		}
 		printf("%*.*s", wid_if, wid_if, prettyname);
 		if (rt->rt_rmx.rmx_expire) {

==== //depot/projects/dtrace/src/usr.sbin/rpcbind/rpcbind.c#7 (text+ko) ====

@@ -1,5 +1,5 @@
 /*	$NetBSD: rpcbind.c,v 1.3 2002/11/08 00:16:40 fvdl Exp $	*/
-/*	$FreeBSD: src/usr.sbin/rpcbind/rpcbind.c,v 1.19 2007/11/07 10:53:39 kevlo Exp $ */
+/*	$FreeBSD: src/usr.sbin/rpcbind/rpcbind.c,v 1.20 2008/02/14 20:12:23 yar Exp $ */
 
 /*
  * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
@@ -250,7 +250,7 @@
 	int aicode;
 	int addrlen;
 	int nhostsbak;
-	int checkbind;
+	int bound;
 	struct sockaddr *sa;
 	u_int32_t host_addr[4];  /* IPv4 or IPv6 */
 	struct sockaddr_un sun;
@@ -340,7 +340,7 @@
 	    /*
 	     * Bind to specific IPs if asked to
 	     */
-	    checkbind = 1;
+	    bound = 0;
 	    while (nhostsbak > 0) {
 		--nhostsbak;
 		/*
@@ -423,7 +423,7 @@
 			freeaddrinfo(res);
 		    continue;
 		} else
-		    checkbind++;
+		    bound = 1;
 		(void)umask(oldmask);
 
 		/* Copy the address */
@@ -467,7 +467,7 @@
 		    goto error;
 		}
 	    }
-	    if (!checkbind)
+	    if (!bound)
 		return 1;
 	} else {
 	    oldmask = umask(S_IXUSR|S_IXGRP|S_IXOTH);

==== //depot/projects/dtrace/www/en/search/search.sgml#6 (text+ko) ====

@@ -1,6 +1,6 @@
 <!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
 <!ENTITY base CDATA "..">
-<!ENTITY date "$FreeBSD: www/en/search/search.sgml,v 1.109 2007/03/22 21:37:41 gabor Exp $">
+<!ENTITY date "$FreeBSD: www/en/search/search.sgml,v 1.110 2008/02/14 13:58:20 gabor Exp $">
 <!ENTITY title "Search">
 ]>
 
@@ -9,20 +9,20 @@
 
 <h2>FreeBSD Search Services</h2>
 <ul>
-<li><a href="#web">Web pages</a>
-<li><a href="#mailinglists">Mailing list archives</a>
-<li><a href="search-mid.html">Message-ID</a>
+<li><a href="#web">Web pages</a></li>
+<li><a href="#mailinglists">Mailing list archives</a></li>
+<li><a href="search-mid.html">Message-ID</a></li>
 <li><a href="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
-GNATS Problem Reports (Bugs) database</a>
-<li><a href="http://www.FreeBSD.org/cgi/man.cgi">Manual Pages</a>
+GNATS Problem Reports (Bugs) database</a></li>
+<li><a href="http://www.FreeBSD.org/cgi/man.cgi">Manual Pages</a></li>
 <li><a href="http://www.FreeBSD.org/cgi/ports.cgi">
-Ports Changes</a>
+Ports Changes</a></li>
 <li><a href="http://fxr.watson.org/">
-The Source Code</a>
-<li><a href="http://minnie.tuhs.org/BSD-info/bsdnews_search.html">BSD Usenet News Searcher</a>
-<li><a href="http://www.google.com/bsd">Google Search BSD</a>
-<li><a href="http://www.greasydaemon.com/">GreasyDaemon</a>, an all-in-one BSD UNIX search engine
-<li><a href="http://freebsd.rambler.ru/">FreeBSD mail archives search</a>
+The Source Code</a></li>
+<li><a href="http://minnie.tuhs.org/BSD-info/bsdnews_search.html">BSD Usenet News Searcher</a></li>
+<li><a href="http://www.google.com/bsd">Google Search BSD</a></li>
+<li><a href="http://www.greasydaemon.com/">GreasyDaemon</a>, an all-in-one BSD UNIX search engine</li>
+<li><a href="http://freebsd.rambler.ru/">FreeBSD mail archives search</a></li>
 </ul>
 
 <hr noshade>

==== //depot/projects/dtrace/www/share/sgml/advisories.xml#17 (text+ko) ====

@@ -2,7 +2,7 @@
 <advisories>
   <cvs:keywords xmlns:cvs="http://www.FreeBSD.org/XML/CVS" version="1.0">
     <cvs:keyword name="freebsd">
-      $FreeBSD: www/share/sgml/advisories.xml,v 1.216 2008/01/15 01:30:33 hrs Exp $
+      $FreeBSD: www/share/sgml/advisories.xml,v 1.218 2008/02/14 12:21:12 simon Exp $
     </cvs:keyword>
   </cvs:keywords>
 
@@ -10,9 +10,33 @@
     <name>2008</name>
 
     <month>
+      <name>2</name>
+
+      <day>
+	<name>14</name>
+
+	<advisory>
+	  <name>FreeBSD-SA-08:04.ipsec</name>
+	</advisory>
+
+	<advisory>
+	  <name>FreeBSD-SA-08:03.sendfile</name>
+	</advisory>
+      </day>
+    </month>
+
+    <month>
       <name>1</name>
 
       <day>
+        <name>18</name>
+
+        <release>
+          <name>FreeBSD 6.3-RELEASE</name>
+        </release>
+      </day>
+
+      <day>
 	<name>14</name>

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


More information about the p4-projects mailing list