Re: [PATCH v2 5/5] x86/cpu: Remove LASS restriction on vsyscall emulation
From: H. Peter Anvin
Date: Thu Mar 05 2026 - 17:47:58 EST
On 2026-03-05 13:40, Sohil Mehta wrote:
> Vsyscall emulation has two modes of operation: XONLY and EMULATE. The
> default XONLY mode is now supported with a LASS-triggered #GP. OTOH,
> LASS is disabled if someone requests the deprecated EMULATE mode via the
> vsyscall=emulate command line option. So, remove the restriction on LASS
> when the overall vsyscall emulation support is compiled in.
>
> As a result, there is no need for setup_lass() anymore. LASS is enabled
> by default through a late_initcall().
>
> Signed-off-by: Sohil Mehta <sohil.mehta@xxxxxxxxx>
> Reviewed-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> ---
> v2:
> - Picked up Dave's review tag
> - Improve commit message
> ---
> arch/x86/kernel/cpu/common.c | 15 ---------------
> 1 file changed, 15 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 3557f0e6b3aa..02472fc763d9 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -406,20 +406,6 @@ static __always_inline void setup_umip(struct cpuinfo_x86 *c)
> cr4_clear_bits(X86_CR4_UMIP);
> }
>
> -static __always_inline void setup_lass(struct cpuinfo_x86 *c)
> -{
> - if (!cpu_feature_enabled(X86_FEATURE_LASS))
> - return;
> -
> - /*
> - * Legacy vsyscall page access causes a #GP when LASS is active.
> - * Disable LASS because the #GP handler doesn't support vsyscall
> - * emulation.
> - */
> - if (IS_ENABLED(CONFIG_X86_VSYSCALL_EMULATION))
> - setup_clear_cpu_cap(X86_FEATURE_LASS);
> -}
> -
> static int enable_lass(unsigned int cpu)
> {
> cr4_set_bits(X86_CR4_LASS);
> @@ -2061,7 +2047,6 @@ static void identify_cpu(struct cpuinfo_x86 *c)
> setup_smep(c);
> setup_smap(c);
> setup_umip(c);
> - setup_lass(c);
>
> /* Enable FSGSBASE instructions if available. */
> if (cpu_has(c, X86_FEATURE_FSGSBASE)) {
Love a patch that just deletes code!
Reviewed-by: H> Peter Anvin (Intel) <hpa@xxxxxxxxx>