On Thu, Jul 11, 2024 at 11:03:29AM +0200, Peter Zijlstra wrote: > On Wed, Jul 10, 2024 at 12:06:47PM -0700, Pawan Gupta wrote: > > +/* > > + * Safer version of CLEAR_CPU_BUFFERS that uses %ss to reference VERW operand > > + * mds_verw_sel. This ensures VERW will not #GP for an arbitrary user %ds. > > + */ > > +.macro CLEAR_CPU_BUFFERS_SAFE > > + ALTERNATIVE "jmp .Lskip_verw\@", "", X86_FEATURE_CLEAR_CPU_BUF > > + verw %ss:_ASM_RIP(mds_verw_sel) > > +.Lskip_verw\@: > > +.endm > > I know this is somewhat of a common pattern, but I think it is silly in > this case. Since we already have the ALTERNATIVE() why not NOP the one > VERW instruction instead? > > That is, > > ALTERNATIVE("", "verw %ss:_ASM_RIP(mds_verw_sel)", X86_FEATURE_CLEAR_CPU_BUF) Will do, thanks.