Print this page
11859 need swapgs mitigation
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@fingolfin.org>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/ia32/ml/exception.s
          +++ new/usr/src/uts/intel/ia32/ml/exception.s
↓ open down ↓ 166 lines elided ↑ open up ↑
 167  167          je      1f
 168  168          leaq    brand_sys_sysenter(%rip), %r11
 169  169          cmpq    %r11, 24(%rsp)  /* Compare to saved r_rip on the stack */
 170  170          je      1f
 171  171          leaq    tr_sys_sysenter(%rip), %r11
 172  172          cmpq    %r11, 24(%rsp)
 173  173          je      1f
 174  174          leaq    tr_brand_sys_sysenter(%rip), %r11
 175  175          cmpq    %r11, 24(%rsp)
 176  176          jne     2f
 177      -1:      SWAPGS
 178      -2:      popq    %r11
      177 +1:      swapgs
      178 +2:      lfence /* swapgs mitigation */
      179 +        popq    %r11
 179  180  #endif  /* !__xpv */
 180  181  
 181  182          INTR_PUSH
 182  183  #if defined(__xpv)
 183  184          movl    $6, %edi
 184  185          call    kdi_dreg_get
 185  186          movq    %rax, %r15              /* %db6 -> %r15 */
 186  187          movl    $6, %edi
 187  188          movl    $0, %esi
 188  189          call    kdi_dreg_set            /* 0 -> %db6 */
↓ open down ↓ 1151 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX