Date: Thu, 29 Jul 2010 02:32:21 +0000 (UTC) From: Juli Mallett <jmallett@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/mips/mips pm_machdep.c trap.c Message-ID: <201007290232.o6T2Wh4U078629@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
jmallett 2010-07-29 02:32:21 UTC
FreeBSD src repository
Modified files:
sys/mips/mips pm_machdep.c trap.c
Log:
SVN rev 210595 on 2010-07-29 02:32:21Z by jmallett
o) Subtract 64K from the default userland stack pointer. GCC generate code
that with a 32-bit ABI on a system with 64-bit registers can attempt to
access an invalid (well, kernel) memory address rather than the intended
user address for stack-relative loads and stores. Lowering the stack
pointer works around this. [1]
o) Make TRAP_DEBUG code conditional on the trap_debug variable. Make
trap_debug default to 0 instead of 1 now but make it possible to change it
at runtime using sysctl.
o) Kill programs that attempt an unaligned access of a kernel address. Note
that with some ABIs, calling useracc() is not sufficient since the register
may be 64-bit but vm_offset_t is 32-bit so a kernel address could be
truncated to what looks like a valid user address, allowing the user to
crash the kernel.
o) Clean up unaligned access emulation to support unaligned 16-bit and 64-bit
accesses. (For 16-bit accesses it was checking for user access to too much
memory (4 bytes) and there was no 64-bit support.) This still lacks support
for unaligned load-linked and store-conditional.
Reviewed by: [1] gonzo
Revision Changes Path
1.10 +29 -1 src/sys/mips/mips/pm_machdep.c
1.18 +97 -64 src/sys/mips/mips/trap.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201007290232.o6T2Wh4U078629>
