On Tue, Oct 24, 2023 at 01:08:21AM -0700, Pawan Gupta wrote: > +.macro CLEAR_CPU_BUFFERS > + ALTERNATIVE "jmp .Lskip_verw_\@;", "jmp .Ldo_verw_\@", X86_FEATURE_CLEAR_CPU_BUF > + /* nopl __KERNEL_DS(%rax) */ > + .byte 0x0f, 0x1f, 0x80, 0x00, 0x00; > +.Lverw_arg_\@: .word __KERNEL_DS; > +.Ldo_verw_\@: verw _ASM_RIP(.Lverw_arg_\@); > +.Lskip_verw_\@: > +.endm Why can't this be: ALTERNATIVE "". "verw _ASM_RIP(mds_verw_sel)", X86_FEATURE_CLEAR_CPU_BUF And have that mds_verw_sel thing be out-of-line ? That gives much better code for the case where we don't need this.