Date: Fri, 7 May 2004 07:39:55 -0700 (PDT) From: Peter Wemm <peter@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 52422 for review Message-ID: <200405071439.i47Edt30047172@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=52422 Change 52422 by peter@peter_daintree on 2004/05/07 07:39:13 IFC @52413 Affected files ... .. //depot/projects/hammer/etc/rc.d/power_profile#3 integrate .. //depot/projects/hammer/share/man/man4/acpi.4#22 integrate .. //depot/projects/hammer/share/man/man5/link.5#4 integrate .. //depot/projects/hammer/share/man/man5/style.Makefile.5#4 integrate .. //depot/projects/hammer/share/mk/bsd.lib.mk#19 integrate .. //depot/projects/hammer/sys/conf/files.ia64#17 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#18 integrate .. //depot/projects/hammer/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/hammer/sys/dev/cx/if_cx.c#3 integrate .. //depot/projects/hammer/sys/ia64/ia64/interrupt.c#14 integrate .. //depot/projects/hammer/sys/ia64/ia64/trap.c#24 integrate .. //depot/projects/hammer/sys/vm/vm_glue.c#27 integrate Differences ... ==== //depot/projects/hammer/etc/rc.d/power_profile#3 (text+ko) ==== @@ -5,7 +5,7 @@ # # Arguments: 0x00 (AC offline, economy) or 0x01 (AC online, performance) # -# $FreeBSD: src/etc/rc.d/power_profile,v 1.2 2004/03/08 12:25:05 pjd Exp $ +# $FreeBSD: src/etc/rc.d/power_profile,v 1.3 2004/05/07 05:22:38 njl Exp $ # # PROVIDE: power_profile @@ -71,9 +71,9 @@ # Set the various sysctls based on the profile's values. node="hw.acpi.cpu.cx_lowest" -highest_value=0 +highest_value="C1" lowest_value="$(sysctl -n hw.acpi.cpu.cx_supported | \ - awk '{ print split($0, a) - 1 }' - 2> /dev/null)" + awk '{ print "C" split($0, a) }' - 2> /dev/null)" eval value=\$${profile}_cx_lowest sysctl_set ==== //depot/projects/hammer/share/man/man4/acpi.4#22 (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/man4/acpi.4,v 1.33 2004/04/20 17:45:47 njl Exp $ +.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.34 2004/05/07 05:22:37 njl Exp $ .\" .Dd July 2, 2001 .Dt ACPI 4 @@ -366,19 +366,21 @@ .Va hw.acpi.cpu.cx_lowest is modified. .It Va hw.acpi.cpu.cx_lowest -Zero-based index of the lowest CPU idle state to use. -A scheduling algorithm will select between 0...index for the state -to use during the next sleep. +Lowest Cx state to use for idling the CPU. +A scheduling algorithm will select states between C1 and this setting +as system load dictates. To enable ACPI CPU idling control, .Va machdep.cpu_idle_hlt must be set to 1. .It Va hw.acpi.cpu.cx_supported List of supported CPU idle states and their transition latency in microseconds. -Each state has a type, C1-3. +Each state has a type (e.g., C2.) C1 is equivalent to the ia32 HLT instruction, C2 provides a deeper sleep with the same semantics, and C3 provides the deepest sleep but additionally requires bus mastering to be disabled. +States greater than C3 provide even more power savings with the same +semantics as the C3 state. Deeper sleeps provide more power savings but increased transition latency when an interrupt occurs. .El ==== //depot/projects/hammer/share/man/man5/link.5#4 (text+ko) ==== @@ -26,7 +26,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/share/man/man5/link.5,v 1.26 2003/09/08 19:57:20 ru Exp $ +.\" $FreeBSD: src/share/man/man5/link.5,v 1.27 2004/05/07 13:00:01 brueffer Exp $ .\" .Dd October 23, 1993 .Dt LINK 5 @@ -295,7 +295,7 @@ .Fa sod structure that was responsible for loading this shared object. .It Fa som_sodbase -Tossed in later versions the run-time linker. +Tossed out in later versions of the run-time linker. .It Fa som_write Set if (some portion of) this object's text segment is currently writable. .It Fa som_dynamic @@ -393,7 +393,7 @@ Virtual address of next rt_symbol. .It Fa rt_link Next in hash bucket. -Used by internally by +Used internally by .Nm ld.so . .It Fa rt_srcaddr Location of the source of initialized data within a shared object. @@ -436,7 +436,7 @@ .It Fa dd_sym_loaded Set by the run-time linker whenever it adds symbols by loading shared objects. .It Fa dd_bpt_addr -The address were a breakpoint will be set by the run-time linker to +The address where a breakpoint will be set by the run-time linker to divert control to the debugger. This address is determined by the start-up module, ==== //depot/projects/hammer/share/man/man5/style.Makefile.5#4 (text+ko) ==== @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/style.Makefile.5,v 1.7 2003/09/08 19:57:20 ru Exp $ +.\" $FreeBSD: src/share/man/man5/style.Makefile.5,v 1.8 2004/05/07 09:59:03 des Exp $ .\" .Dd February 28, 2003 .Dt STYLE.MAKEFILE 5 @@ -70,7 +70,7 @@ The general .Dq product order is: -.Va PROG Ns / Ns Va LIB Ns / Ns Va SCRIPT +.Va PROG Ns / Ns Oo Va SH Oc Ns Va LIB Ns / Ns Va SCRIPT .Va FILES .Va LINKS .Oo Va NO Oc Ns Va MAN @@ -84,7 +84,7 @@ The general .Dq build order is: -.Va PROG Ns / Ns Va LIB Ns / Ns Va SCRIPT +.Va PROG Ns / Ns Oo Va SH Oc Ns Va LIB Ns / Ns Va SCRIPT .Va SRCS .Va WARNS .Va CFLAGS ==== //depot/projects/hammer/share/mk/bsd.lib.mk#19 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)bsd.lib.mk 5.26 (Berkeley) 5/2/91 -# $FreeBSD: src/share/mk/bsd.lib.mk,v 1.159 2004/03/15 17:01:31 trhodes Exp $ +# $FreeBSD: src/share/mk/bsd.lib.mk,v 1.160 2004/05/07 09:58:36 des Exp $ # .include <bsd.init.mk> @@ -12,8 +12,11 @@ .undef SHLIB_NAME .undef INSTALL_PIC_ARCHIVE .else -.if !defined(SHLIB_NAME) && defined(LIB) && defined(SHLIB_MAJOR) -SHLIB_NAME= lib${LIB}.so.${SHLIB_MAJOR} +.if !defined(SHLIB) && defined(LIB) +SHLIB= ${LIB} +.endif +.if !defined(SHLIB_NAME) && defined(SHLIB) && defined(SHLIB_MAJOR) +SHLIB_NAME= lib${SHLIB}.so.${SHLIB_MAJOR} .endif .if defined(SHLIB_NAME) && !empty(SHLIB_NAME:M*.so.*) SHLIB_LINK?= ${SHLIB_NAME:R} ==== //depot/projects/hammer/sys/conf/files.ia64#17 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.ia64,v 1.65 2004/03/20 21:06:20 alc Exp $ +# $FreeBSD: src/sys/conf/files.ia64,v 1.66 2004/05/07 03:56:00 marcel Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -36,13 +36,10 @@ contrib/ia64/libuwx/src/uwx_context.c standard contrib/ia64/libuwx/src/uwx_env.c standard contrib/ia64/libuwx/src/uwx_scoreboard.c standard -#contrib/ia64/libuwx/src/uwx_self.c standard -#contrib/ia64/libuwx/src/uwx_self_context.s standard contrib/ia64/libuwx/src/uwx_step.c standard contrib/ia64/libuwx/src/uwx_str.c standard contrib/ia64/libuwx/src/uwx_swap.c standard contrib/ia64/libuwx/src/uwx_trace.c standard -#contrib/ia64/libuwx/src/uwx_ttrace.c standard contrib/ia64/libuwx/src/uwx_uinfo.c standard contrib/ia64/libuwx/src/uwx_utable.c standard crypto/blowfish/bf_enc.c optional crypto ==== //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#18 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.35 2004/05/06 17:25:23 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.36 2004/05/07 05:22:37 njl Exp $"); #include "opt_acpi.h" #include <sys/param.h> @@ -739,10 +739,8 @@ sc = device_get_softc(cpu_devices[0]); sbuf_new(&sb, cpu_cx_supported, sizeof(cpu_cx_supported), SBUF_FIXEDLEN); - for (i = 0; i < cpu_cx_count; i++) { - sbuf_printf(&sb, "C%d/%d ", sc->cpu_cx_states[i].type, - sc->cpu_cx_states[i].trans_lat); - } + for (i = 0; i < cpu_cx_count; i++) + sbuf_printf(&sb, "C%d/%d ", i + 1, sc->cpu_cx_states[i].trans_lat); sbuf_trim(&sb); sbuf_finish(&sb); SYSCTL_ADD_STRING(&acpi_cpu_sysctl_ctx, @@ -751,8 +749,8 @@ 0, "Cx/microsecond values for supported Cx states"); SYSCTL_ADD_PROC(&acpi_cpu_sysctl_ctx, SYSCTL_CHILDREN(acpi_cpu_sysctl_tree), - OID_AUTO, "cx_lowest", CTLTYPE_INT | CTLFLAG_RW, - NULL, 0, acpi_cpu_cx_lowest_sysctl, "I", + OID_AUTO, "cx_lowest", CTLTYPE_STRING | CTLFLAG_RW, + NULL, 0, acpi_cpu_cx_lowest_sysctl, "A", "lowest Cx sleep state to use"); SYSCTL_ADD_PROC(&acpi_cpu_sysctl_ctx, SYSCTL_CHILDREN(acpi_cpu_sysctl_tree), @@ -1085,7 +1083,8 @@ } sbuf_trim(&sb); sbuf_finish(&sb); - sysctl_handle_string(oidp, sbuf_data(&sb), 0, req); + sysctl_handle_string(oidp, sbuf_data(&sb), sbuf_len(&sb), req); + sbuf_delete(&sb); return (0); } @@ -1094,13 +1093,17 @@ acpi_cpu_cx_lowest_sysctl(SYSCTL_HANDLER_ARGS) { struct acpi_cpu_softc *sc; + char state[8]; int val, error, i; sc = device_get_softc(cpu_devices[0]); - val = cpu_cx_lowest; - error = sysctl_handle_int(oidp, &val, 0, req); + snprintf(state, sizeof(state), "C%d", cpu_cx_lowest + 1); + error = sysctl_handle_string(oidp, state, sizeof(state), req); if (error != 0 || req->newptr == NULL) return (error); + if (strlen(state) < 2 || toupper(state[0]) != 'C') + return (EINVAL); + val = (int) strtol(state + 1, NULL, 10) - 1; if (val < 0 || val > cpu_cx_count - 1) return (EINVAL); ==== //depot/projects/hammer/sys/dev/ctau/if_ct.c#2 (text+ko) ==== @@ -21,7 +21,7 @@ * Cronyx Id: if_ct.c,v 1.1.2.22 2004/02/26 19:06:51 rik Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/ctau/if_ct.c,v 1.2 2004/03/02 16:39:40 rik Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ctau/if_ct.c,v 1.4 2004/05/07 11:59:54 rik Exp $"); #include <sys/param.h> @@ -64,7 +64,7 @@ # include <i386/isa/intr_machdep.h> # endif #endif -#if __FreeBSD_version >= 500000 +#if __FreeBSD_version >= 400000 #include <dev/cx/machdep.h> #include <dev/ctau/ctddk.h> #include <dev/cx/cronyxfw.h> @@ -78,7 +78,7 @@ # include "opt_netgraph.h" # include <netgraph/ng_message.h> # include <netgraph/netgraph.h> -#if __FreeBSD_version >= 500000 +#if __FreeBSD_version >= 400000 # include <dev/ctau/ng_ct.h> #else # include <netgraph/ng_ct.h> @@ -107,6 +107,11 @@ #endif #endif +/* If we don't have Cronyx's sppp version, we don't have fr support via sppp */ +#ifndef PP_FR +#define PP_FR 0 +#endif + #define CT_DEBUG(d,s) ({if (d->chan->debug) {\ printf ("%s: ", d->name); printf s;}}) #define CT_DEBUG2(d,s) ({if (d->chan->debug>1) {\ @@ -1333,7 +1338,7 @@ #ifndef NETGRAPH case SERIAL_GETPROTO: - strcpy ((char*)data, /*(d->pp.pp_flags & PP_FR) ? "fr" :*/ + strcpy ((char*)data, (d->pp.pp_flags & PP_FR) ? "fr" : (d->pp.pp_if.if_flags & PP_CISCO) ? "cisco" : "ppp"); return 0; @@ -1351,21 +1356,21 @@ if (d->pp.pp_if.if_flags & IFF_RUNNING) return EBUSY; if (! strcmp ("cisco", (char*)data)) { -/* d->pp.pp_flags &= ~(PP_FR);*/ + d->pp.pp_flags &= ~(PP_FR); d->pp.pp_flags |= PP_KEEPALIVE; d->pp.pp_if.if_flags |= PP_CISCO; -/* } else if (! strcmp ("fr", (char*)data)) { + } else if (! strcmp ("fr", (char*)data)) { d->pp.pp_if.if_flags &= ~(PP_CISCO); - d->pp.pp_flags |= PP_FR | PP_KEEPALIVE;*/ + d->pp.pp_flags |= PP_FR | PP_KEEPALIVE; } else if (! strcmp ("ppp", (char*)data)) { - d->pp.pp_flags &= ~(/*PP_FR | */PP_KEEPALIVE); + d->pp.pp_flags &= ~(PP_FR | PP_KEEPALIVE); d->pp.pp_if.if_flags &= ~(PP_CISCO); } else return EINVAL; return 0; case SERIAL_GETKEEPALIVE: - if (/*(d->pp.pp_flags & PP_FR) ||*/ + if ((d->pp.pp_flags & PP_FR) || (d->pp.pp_if.if_flags & PP_CISCO)) return EINVAL; *(int*)data = (d->pp.pp_flags & PP_KEEPALIVE) ? 1 : 0; @@ -1382,7 +1387,7 @@ #endif /* __FreeBSD_version >= 500000 */ if (error) return error; - if (/*(d->pp.pp_flags & PP_FR) ||*/ + if ((d->pp.pp_flags & PP_FR) || (d->pp.pp_if.if_flags & PP_CISCO)) return EINVAL; if (*(int*)data) ==== //depot/projects/hammer/sys/dev/cx/if_cx.c#3 (text+ko) ==== @@ -22,7 +22,7 @@ * Cronyx Id: if_cx.c,v 1.1.2.23 2004/02/26 17:56:40 rik Exp $ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.7 2004/03/02 16:44:07 rik Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/cx/if_cx.c,v 1.10 2004/05/07 11:45:25 rik Exp $"); #include <sys/param.h> @@ -67,7 +67,7 @@ # include <i386/isa/intr_machdep.h> # endif #endif -#if __FreeBSD_version >= 500000 +#if __FreeBSD_version >= 400000 # include <dev/cx/machdep.h> # include <dev/cx/cxddk.h> # include <dev/cx/cronyxfw.h> @@ -81,7 +81,7 @@ # include "opt_netgraph.h" # include <netgraph/ng_message.h> # include <netgraph/netgraph.h> -# if __FreeBSD_version >= 500000 +# if __FreeBSD_version >= 400000 # include <dev/cx/ng_cx.h> # else # include <netgraph/ng_cx.h> @@ -91,7 +91,7 @@ # if __FreeBSD_version < 500000 # include "sppp.h" # if NSPPP <= 0 -# error The device cp requires sppp or netgraph. +# error The device cx requires sppp or netgraph. # endif # endif # include <net/if_sppp.h> @@ -110,6 +110,11 @@ #endif #endif +/* If we don't have Cronyx's sppp version, we don't have fr support via sppp */ +#ifndef PP_FR +#define PP_FR 0 +#endif + #define CX_DEBUG(d,s) ({if (d->chan->debug) {\ printf ("%s: ", d->name); printf s;}}) #define CX_DEBUG2(d,s) ({if (d->chan->debug>1) {\ @@ -226,7 +231,6 @@ static swihand_t cx_softintr; #else static void cx_softintr (void *); -static void *cx_slow_ih; static void *cx_fast_ih; #endif static void cx_down (drv_t *d); @@ -1810,7 +1814,7 @@ CX_DEBUG2 (d, ("ioctl: getproto\n")); s = splhigh (); strcpy ((char*)data, (c->mode == M_ASYNC) ? "async" : - /*(d->pp.pp_flags & PP_FR) ? "fr" :*/ + (d->pp.pp_flags & PP_FR) ? "fr" : (d->pp.pp_if.if_flags & PP_CISCO) ? "cisco" : "ppp"); splx (s); return 0; @@ -1832,14 +1836,14 @@ if (d->pp.pp_if.if_flags & IFF_RUNNING) return EBUSY; if (! strcmp ("cisco", (char*)data)) { -/* d->pp.pp_flags &= ~(PP_FR);*/ + d->pp.pp_flags &= ~(PP_FR); d->pp.pp_flags |= PP_KEEPALIVE; d->pp.pp_if.if_flags |= PP_CISCO; -/* } else if (! strcmp ("fr", (char*)data)) {*/ -/* d->pp.pp_if.if_flags &= ~(PP_CISCO);*/ -/* d->pp.pp_flags |= PP_FR | PP_KEEPALIVE;*/ + } else if (! strcmp ("fr", (char*)data)) { + d->pp.pp_if.if_flags &= ~(PP_CISCO); + d->pp.pp_flags |= PP_FR | PP_KEEPALIVE; } else if (! strcmp ("ppp", (char*)data)) { - d->pp.pp_flags &= ~(/*PP_FR |*/ PP_KEEPALIVE); + d->pp.pp_flags &= ~(PP_FR | PP_KEEPALIVE); d->pp.pp_if.if_flags &= ~(PP_CISCO); } else return EINVAL; @@ -1847,7 +1851,7 @@ case SERIAL_GETKEEPALIVE: CX_DEBUG2 (d, ("ioctl: getkeepalive\n")); - if (/*(d->pp.pp_flags & PP_FR) ||*/ + if ((d->pp.pp_flags & PP_FR) || (d->pp.pp_if.if_flags & PP_CISCO) || (c->mode == M_ASYNC)) return EINVAL; @@ -1868,7 +1872,7 @@ #endif /* __FreeBSD_version >= 500000 */ if (error) return error; - if (/*(d->pp.pp_flags & PP_FR) ||*/ + if ((d->pp.pp_flags & PP_FR) || (d->pp.pp_if.if_flags & PP_CISCO)) return EINVAL; s = splhigh (); @@ -3145,8 +3149,6 @@ #else swi_add(&tty_ithd, "tty:cx", cx_softintr, NULL, SWI_TTY, 0, &cx_fast_ih); - swi_add(&clk_ithd, "tty:cx", cx_softintr, NULL, SWI_TTY, 0, - &cx_slow_ih); #endif break; case MOD_UNLOAD: @@ -3163,7 +3165,6 @@ untimeout (cx_timeout, 0, timeout_handle); #if __FreeBSD_version >= 500000 ithread_remove_handler (cx_fast_ih); - ithread_remove_handler (cx_slow_ih); #else unregister_swi (SWI_TTY, cx_softintr); #endif ==== //depot/projects/hammer/sys/ia64/ia64/interrupt.c#14 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.44 2004/01/20 02:35:46 marcel Exp $ */ +/* $FreeBSD: src/sys/ia64/ia64/interrupt.c,v 1.45 2004/05/07 05:29:12 marcel Exp $ */ /* $NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $ */ /* @@ -52,6 +52,7 @@ #include <machine/clock.h> #include <machine/cpu.h> +#include <machine/fpu.h> #include <machine/frame.h> #include <machine/intr.h> #include <machine/md_var.h> @@ -132,6 +133,8 @@ int64_t delta; int count; + ia64_set_fpsr(IA64_FPSR_DEFAULT); + td = curthread; atomic_add_int(&td->td_intr_nesting_level, 1); ==== //depot/projects/hammer/sys/ia64/ia64/trap.c#24 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/ia64/ia64/trap.c,v 1.98 2004/05/03 04:13:31 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/trap.c,v 1.99 2004/05/07 05:35:31 marcel Exp $"); #include "opt_ddb.h" #include "opt_ktrace.h" @@ -358,9 +358,6 @@ user = TRAPF_USERMODE(tf) ? 1 : 0; - /* Sanitize the FP state in case the user has trashed it. */ - ia64_set_fpsr(IA64_FPSR_DEFAULT); - atomic_add_int(&cnt.v_trap, 1); td = curthread; @@ -368,6 +365,7 @@ ucode = 0; if (user) { + ia64_set_fpsr(IA64_FPSR_DEFAULT); sticks = td->td_sticks; td->td_frame = tf; if (td->td_ucred != p->p_ucred) @@ -668,10 +666,11 @@ FPSWA_BUNDLE bundle; char *ip; + /* Always fatal in kernel. Should never happen. */ + if (!user) + trap_panic(vector, tf); + if (fpswa_interface == NULL) { - if (!user) - trap_panic(vector, tf); - sig = SIGFPE; ucode = 0; break; @@ -681,15 +680,12 @@ if (vector == IA64_VEC_FLOATING_POINT_TRAP && (tf->tf_special.psr & IA64_PSR_RI) == 0) ip -= 16; - if (user) { - error = copyin(ip, &bundle, 16); - if (error) { - sig = SIGBUS; /* EFAULT, basically */ - ucode = 0; /* exception summary */ - break; - } - } else - bcopy(ip, &bundle, 16); + error = copyin(ip, &bundle, 16); + if (error) { + sig = SIGBUS; /* EFAULT, basically */ + ucode = 0; /* exception summary */ + break; + } /* f6-f15 are saved in exception_save */ fp_state.bitmask_low64 = 0xffc0; /* bits 6 - 15 */ @@ -741,12 +737,11 @@ printf("FATAL: FPSWA err1 %lx, err2 %lx, err3 %lx\n", fpswa_ret.err1, fpswa_ret.err2, fpswa_ret.err3); panic("fpswa fatal error on fp fault"); - } else if (user) { + } else { sig = SIGFPE; ucode = 0; /* XXX exception summary */ break; - } else - goto out; + } } case IA64_VEC_IA32_EXCEPTION: @@ -897,6 +892,8 @@ int code, error; u_int sticks; + ia64_set_fpsr(IA64_FPSR_DEFAULT); + code = tf->tf_scratch.gr15; args = &tf->tf_scratch.gr16; ==== //depot/projects/hammer/sys/vm/vm_glue.c#27 (text+ko) ==== @@ -57,7 +57,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/vm/vm_glue.c,v 1.196 2004/04/06 20:15:36 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_glue.c,v 1.197 2004/05/07 11:43:24 green Exp $"); #include "opt_vm.h" #include "opt_kstack_pages.h" @@ -216,7 +216,7 @@ return (EAGAIN); #endif error = vm_map_wire(&curproc->p_vmspace->vm_map, start, end, - VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES); + VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES); /* * Return EFAULT on error to match copy{in,out}() behaviour * rather than returning ENOMEM like mlock() would.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405071439.i47Edt30047172>