Print this page
11787 Kernel needs to be built with retpolines
11788 Kernel needs to generally use RSB stuffing
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: John Levon <john.levon@joyent.com>

*** 169,178 **** --- 169,186 ---- andq $PS_ACHK, %rsi movq %rsi, T_USERACC(%rax) call smap_enable /* + * Take a moment to potentially clear the RSB buffer. This is done to + * prevent various Spectre variant 2 and SpectreRSB attacks. This may + * not be sufficient. Please see uts/intel/ia32/ml/retpoline.s for more + * information about this. + */ + call x86_rsb_stuff + + /* * Save non-volatile registers, and set return address for current * thread to resume_return. * * %r12 = t (new thread) when done */
*** 488,496 **** ENTRY(thread_start) popq %rax /* start() */ popq %rdi /* arg */ popq %rsi /* len */ movq %rsp, %rbp ! call *%rax call thread_exit /* destroy thread if it returns. */ /*NOTREACHED*/ SET_SIZE(thread_start) --- 496,504 ---- ENTRY(thread_start) popq %rax /* start() */ popq %rdi /* arg */ popq %rsi /* len */ movq %rsp, %rbp ! INDIRECT_CALL_REG(rax) call thread_exit /* destroy thread if it returns. */ /*NOTREACHED*/ SET_SIZE(thread_start)