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>

*** 40,61 **** * has been executed after this to make sure any pending speculations are * captured. In general, this should be handled by the fact that callers of * this are either going to change privilege levels or halt, which makes * these operations safer. */ - ENTRY_NP(x86_md_clear_noop) - ret - SET_SIZE(x86_md_clear_noop) /* ! * This uses the microcode based means of flushing state. VERW will ! * clobber flags. */ ! ENTRY_NP(x86_md_clear_verw) pushfq subq $8, %rsp mov %ds, (%rsp) verw (%rsp) addq $8, %rsp popfq ret ! SET_SIZE(x86_md_clear_verw) --- 40,63 ---- * has been executed after this to make sure any pending speculations are * captured. In general, this should be handled by the fact that callers of * this are either going to change privilege levels or halt, which makes * these operations safer. */ /* ! * By default, x86_md_clear is disabled until the system determines that ! * it both needs MDS related mitigations and we have microcode that ! * provides the needed functionality. ! * ! * The VERW instruction clobbers flags which is why it's important that ! * we save and restore them here. */ ! ENTRY_NP(x86_md_clear) ! ret pushfq subq $8, %rsp mov %ds, (%rsp) verw (%rsp) addq $8, %rsp popfq ret ! SET_SIZE(x86_md_clear)