#
341165 |
|
28-Nov-2018 |
vangyzen |
MFC r340994
Prevent kernel stack disclosure in getcontext/swapcontext
Expand r338982 to cover freebsd32 interfaces on amd64, mips, and powerpc.
Security: FreeBSD-EN-18:12.mem Security: CVE-2018-17155 Sponsored by: Dell EMC Isilon
|
#
331722 |
|
29-Mar-2018 |
eadler |
Revert r330897:
This was intended to be a non-functional change. It wasn't. The commit message was thus wrong. In addition it broke arm, and merged crypto related code.
Revert with prejudice.
This revert skips files touched in r316370 since that commit was since MFCed. This revert also skips files that require $FreeBSD$ property changes.
Thank you to those who helped me get out of this mess including but not limited to gonzo, kevans, rgrimes.
Requested by: gjb (re)
|
#
330897 |
|
14-Mar-2018 |
eadler |
Partial merge of the SPDX changes
These changes are incomplete but are making it difficult to determine what other changes can/should be merged.
No objections from: pfg
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
301961 |
|
16-Jun-2016 |
kib |
Update comments for the MD functions managing contexts for new threads, to make it less confusing and using modern kernel terms.
Rename the functions to reflect current use of the functions, instead of the historic KSE conventions: cpu_set_fork_handler -> cpu_fork_kthread_handler (for kthreads) cpu_set_upcall -> cpu_copy_thread (for forks) cpu_set_upcall_kse -> cpu_set_upcall (for new threads creation)
Reviewed by: jhb (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Approved by: re (hrs) Differential revision: https://reviews.freebsd.org/D6731
|
#
300415 |
|
22-May-2016 |
dchagin |
Add macro to convert errno and use it when appropriate.
MFC after: 1 week
|
#
298860 |
|
30-Apr-2016 |
pfg |
powerpc: Replace rounddown() from r298856 with roundup().
Both are equivalent but roundup is more logical for this case. Catch another case while here.
Pointed out by: jhibbits
|
#
298856 |
|
30-Apr-2016 |
pfg |
powerpc: Make use of our rounddown() macro when sys/param.h is available.
No functional change.
|
#
296861 |
|
14-Mar-2016 |
bz |
Only check for SYS_freebsd6_lseek if the syscall code is defined. Whether this is the right or best solution is unclear but it fixes the build for now.
|
#
295186 |
|
02-Feb-2016 |
jhibbits |
Align signal stack pointer to 16 bytes.
The stack must be aligned to 16 bytes at all times. Clang 3.8 is especially adamant about this, and causes strange behavior and segmentation faults if it is not the case.
PR: kern/206810
|
#
295132 |
|
01-Feb-2016 |
jhb |
Restore the ABI of 'struct fpreg' on powerpc.
The PT_{GET,SET}FPREGS requests use 'struct fpreg' and the NT_FPREGSET core note stores a copy of 'struct fpreg'. As with x86 and the floating point state there compared to the extended state in XSAVE, struct fpreg on powerpc now only holds the 'base' FP state, and setting it via PT_SETFPREGS leaves the extended vector state in a thread unchanged.
Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D5004
|
#
294930 |
|
27-Jan-2016 |
jhb |
Convert ss_sp in stack_t and sigstack to void *.
POSIX requires these members to be of type void * rather than the char * inherited from 4BSD. NetBSD and OpenBSD both changed their fields to void * back in 1998. No new build failures were reported via an exp-run.
PR: 206503 (exp-run) Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D5092
|
#
291442 |
|
29-Nov-2015 |
nwhitehorn |
Make ELFv2 powerpc64 kernels build and run. Loader support will come in a separate commit.
|
#
291211 |
|
23-Nov-2015 |
nwhitehorn |
Provide support for userland binaries using the new ELFv2 ABI. This is a new, simplified, ELF ABI that avoids some of the stranger aspects of the existing 64-bit PowerPC ABI (function descriptors, in particular). Actually generating such executables requires a new version of binutils and a newer compiler (either GCC or clang) than GCC 4.2.1.
|
#
283479 |
|
24-May-2015 |
dchagin |
The kernel sends signals to the processes via ABI specific sv_sendsig method. Native ABI do not need signal conversion, only emulators may want this. Usually emulators implements its own sv_sendsig method. For now only ibcs2 emulator does not have own sv_sendsig implementation and depends on native sendsig() method. So, remove any extra attempts to convert signal numbers from native sendsig() methods except from i386 where ibsc2 is living.
|
#
279937 |
|
12-Mar-2015 |
nwhitehorn |
Provide VSX context in ucontext(3) API.
|
#
279601 |
|
04-Mar-2015 |
nwhitehorn |
The AIM DAR (data access fault address register) and Book-E DEAR registers have the same meaning and occupy the same memory address in the trapframe courtesy of union. Avoid some pointless #ifdef by spelling them both 'DAR' in the trapframe.
|
#
279189 |
|
22-Feb-2015 |
nwhitehorn |
Kernel support for the Vector-Scalar eXtension (VSX) found on the POWER7 and POWER8. This instruction set unifies the 32 64-bit scalar floating point registers with the 32 128-bit vector registers into a single bank of 64 128-bit registers. Kernel support mostly amounts to saving and restoring the wider version of the floating point registers and making sure that both scalar FP and vector registers are enabled once a VSX instruction is executed. get_mcontext() and friends currently cannot see the high bits, which will require a little more work.
As the system compiler (GCC 4.2) does not support VSX, making use of this from userland requires either newer GCC or clang.
Relnotes: yes Sponsored by: FreeBSD Foundation
|
#
278001 |
|
31-Jan-2015 |
kib |
Do not qualify the mcontext_t *mcp argument for set_mcontext(9) as const. On x86, even after the machine context is supposedly read into the struct ucontext, lazy FPU state save code might only mark the FPU data as hardware-owned. Later, set_fpcontext() needs to fetch the state from hardware, modifying the *mcp.
The set_mcontext(9) is called from sigreturn(2) and setcontext(2) implementations and old create_thread(2) interface, which throw the *mcp out after the set_mcontext() call.
Reported by: dim Discussed with: jhb Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
261095 |
|
24-Jan-2014 |
jhibbits |
Fix 32-bit signal handling on ppc64. This was broken when the PSL_USERSTATIC macro was changed. Since copying 64-bit srr1 into 32-bit srr1 drops the upper 32 bits, any bits set in the context were dropped, meaning the context check fails. Since 32-bit set_context can't change those bits anyway, copy the ones from the current context (td->td_frame) before calling set_context().
MFC after: 3 weeks
|
#
258259 |
|
17-Nov-2013 |
nwhitehorn |
Unify handling of illegal instruction faults between AIM and Book-E. This allows FPU emulation on AIM as well as providing support for the mfpvr and lwsync instructions from userland on e500 cores. lwsync, in particular, is required for many C++ programs to work correctly.
MFC after: 1 week
|
#
258257 |
|
17-Nov-2013 |
nwhitehorn |
Split the function of the PCB_FPU flags into two: PCB_FPU now indicates that the actual FPU is enabled, while PCB_FPREGS indicates that the FPU state structure in the PCB is valid. This separation reflects the situation on FPU-less systems in which the FP state is used by the emulator but we don't actually want to try to turn on the non-existant FPU.
Use this flag to save and restore FP regs properly on both AIM and Book-E. As a side effect, this sets up hard-FP and Altivec on Book-E CPUs with such abilities except for a trap handler to call enable_fpu()/enable_altivec().
|
#
257116 |
|
25-Oct-2013 |
nwhitehorn |
Remove dead reference to PSL_MBO.
|
#
257115 |
|
25-Oct-2013 |
nwhitehorn |
Remove some #ifdef and duplication in the MSR bit definitions. This adds some security features to the Book-E kernel as well.
|
#
234115 |
|
10-Apr-2012 |
nwhitehorn |
Do not restore the register holding the TLS pointer when doing various usermode context switches (long jumps and ucontext operations). If these are used across threads, multiple threads can end up with the same TLS base. Madness will then result.
This makes behavior on PPC match that on x86 systems and on Linux.
MFC after: 10 days
|
#
225617 |
|
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
#
220597 |
|
13-Apr-2011 |
nwhitehorn |
Make sure that extra threads in 32-bit processes stay in 32-bit mode. This fixes operation of threaded 32-bit binaries on 64-bit kernels.
|
#
217896 |
|
26-Jan-2011 |
dchagin |
Add macro to test the sv_flags of any process. Change some places to test the flags instead of explicit comparing with address of known sysentvec structures.
MFC after: 1 month
|
#
217400 |
|
14-Jan-2011 |
kib |
Enable shared page for the signal trampolines on PowerPC.
Reviewed and tested by: nwhitehorn
|
#
214574 |
|
30-Oct-2010 |
nwhitehorn |
Restructure the way the copyin/copyout segment is stored to prevent a concurrency bug. Since all SLB/SR entries were invalidated during an exception, a decrementer exception could cause the user segment to be invalidated during a copyin()/copyout() without a thread switch that would cause it to be restored from the PCB, potentially causing the operation to continue on invalid memory. This is now handled by explicit restoration of segment 12 from the PCB on 32-bit systems and a check in the Data Segment Exception handler on 64-bit.
While here, cause copyin()/copyout() to check whether the requested user segment is already installed, saving some pipeline flushes, and fix the synchronization primitives around the mtsr and slbmte instructions to prevent accessing stale segments.
MFC after: 2 weeks
|
#
212586 |
|
13-Sep-2010 |
nwhitehorn |
Fix a missing set of parantheses that could cause recent versions of libthr to crash deferencing a NULL pointer to the user context on powerpc64 systems with COMPAT_FREEBSD32 defined.
|
#
209975 |
|
13-Jul-2010 |
nwhitehorn |
MFppc64:
Kernel sources for 64-bit PowerPC, along with build-system changes to keep 32-bit kernels compiling (build system changes for 64-bit kernels are coming later). Existing 32-bit PowerPC kernel configurations must be updated after this change to specify their architecture.
|
#
209950 |
|
12-Jul-2010 |
nwhitehorn |
Unify ABI-related bits of the Book-E and AIM machdep routines (exec_setregs, etc.) in order to simplify the addition of 64-bit support, and possible future extension of the Book-E code to handle hard floating point and Altivec.
MFC after: 1 month
|