From owner-p4-projects@FreeBSD.ORG Thu Feb 14 21:21:28 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AB16716A41A; Thu, 14 Feb 2008 21:21:28 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F0D516A417 for ; Thu, 14 Feb 2008 21:21:28 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 724A413C45A for ; Thu, 14 Feb 2008 21:21:28 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1ELLStt036272 for ; Thu, 14 Feb 2008 21:21:28 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1ELLR7b036269 for perforce@freebsd.org; Thu, 14 Feb 2008 21:21:27 GMT (envelope-from jb@freebsd.org) Date: Thu, 14 Feb 2008 21:21:27 GMT Message-Id: <200802142121.m1ELLR7b036269@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 135414 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 14 Feb 2008 21:21:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=135414 Change 135414 by jb@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 +__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 +__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 +__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 +__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 -__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 -__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 -__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 -__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 -__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 #include @@ -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 -__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 #include @@ -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 -__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 +/* 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 -__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 #include @@ -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 -__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 -__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 -__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 #include @@ -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 -__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 #include @@ -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(" , "); - 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 @@ - + ]> @@ -9,20 +9,20 @@

FreeBSD Search Services


==== //depot/projects/dtrace/www/share/sgml/advisories.xml#17 (text+ko) ==== @@ -2,7 +2,7 @@ - $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 $ @@ -10,9 +10,33 @@ 2008 + 2 + + + 14 + + + FreeBSD-SA-08:04.ipsec + + + + FreeBSD-SA-08:03.sendfile + + + + + 1 + 18 + + + FreeBSD 6.3-RELEASE + + + + 14 >>> TRUNCATED FOR MAIL (1000 lines) <<<