Re: [PATCH v2 1/6] x86/bugs: Add asm helpers for executing VERW

Pawan Gupta
2023-10-24T16:51:17Z

On Tue, Oct 24, 2023 at 06:36:21PM +0200, Peter Zijlstra wrote:
> On Tue, Oct 24, 2023 at 09:35:15AM -0700, Pawan Gupta wrote:
> > On Tue, Oct 24, 2023 at 12:36:01PM +0200, Peter Zijlstra wrote:
> > > 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 ?
> >
> > I haven't done this way because its a tad bit fragile as it depends on
> > modules being within 4GB of kernel.
>
> We 100% rely on that *everywhere*, nothing fragile about it.

I didn't know that, doing it this way then. Thanks.