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)