PERFORCE change 52422 for review
Peter Wemm
peter at FreeBSD.org
Fri May 7 07:39:58 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=52422
Change 52422 by peter at 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.
More information about the p4-projects
mailing list