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

From: Peter Zijlstra
Date: Tue Oct 24 2023 - 06:37:14 EST


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.