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>