CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2023/07/09 21:32:10
Modified files:
sys/arch/amd64/amd64: cpu.c locore.S machdep.c vmm_machdep.c
sys/arch/amd64/include: codepatch.h fpu.h specialreg.h
Log message:
Enable Indirect Branch Tracking for amd64 userland, using XSAVES/XRSTORS
to save/restore the state and enabling it at exec-time (and for
signal handling) if the PS_NOBTCFI flag isn't set.
Note: this changes the format of the sc_fpstate data in the signal
context to possibly be in compressed format: starting now we just
guarantee that that state is in a format understood by the XRSTOR
instruction of the system that is being executed on.
At this time, passing sigreturn a corrupt sc_fpstate now results
in the process exiting with no attempt to fix it up or send a
T_PROTFLT trap. That may change.
prodding by deraadt@
issues with my original signal handling design identified by kettenis@
lots of base and ports preparation for this by deraadt@ and the
libressl and ports teams
ok deraadt@ kettenis@