Re: [PATCH] x86/cpufeatures: Correct LKGS feature flag description

From: H. Peter Anvin

Date: Wed Oct 15 2025 - 11:36:55 EST


On October 15, 2025 8:34:00 AM PDT, Xin Li <xin@xxxxxxxxx> wrote:
>On 10/15/2025 11:18 PM, H. Peter Anvin wrote:
>> On October 15, 2025 8:08:17 AM PDT, Xin Li <xin@xxxxxxxxx> wrote:
>>> On 10/15/2025 6:35 PM, Borislav Petkov wrote:
>>>> From: "Borislav Petkov (AMD)" <bp@xxxxxxxxx>
>>>>
>>>> Quotation marks in cpufeatures.h comments are special and when the
>>>> comment begins with a quoted string, that string lands in /proc/cpuinfo,
>>>> turning it into a user-visible one.
>>>>
>>>> The LKGS comment doesn't begin with a quoted string but just in case
>>>> drop the quoted "kernel" in there to avoid confusion. And while at it,
>>>> simply change the description into what the LKGS instruction does for
>>>> more clarity.
>>>>
>>>> No functional changes.
>>>>
>>>> Signed-off-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
>>>> ---
>>>> arch/x86/include/asm/cpufeatures.h | 2 +-
>>>> tools/arch/x86/include/asm/cpufeatures.h | 2 +-
>>>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
>>>> index 80b68f4726e7..4fb5e12dbdbf 100644
>>>> --- a/arch/x86/include/asm/cpufeatures.h
>>>> +++ b/arch/x86/include/asm/cpufeatures.h
>>>> @@ -320,7 +320,7 @@
>>>> #define X86_FEATURE_FSRS (12*32+11) /* Fast short REP STOSB */
>>>> #define X86_FEATURE_FSRC (12*32+12) /* Fast short REP {CMPSB,SCASB} */
>>>> #define X86_FEATURE_FRED (12*32+17) /* "fred" Flexible Return and Event Delivery */
>>>> -#define X86_FEATURE_LKGS (12*32+18) /* Load "kernel" (userspace) GS */
>>>> +#define X86_FEATURE_LKGS (12*32+18) /* MSR_KERNEL_GS_BASE = GS.base */
>>>
>>> Yes, the assignment is more clearer to us programmers.
>>>
>>> I'm just not sure if "correct" in the shortlog is accurate; it sounds the
>>> existing one is wrong. Otherwise,
>>>
>>> Reviewed-by: Xin Li (Intel) <xin@xxxxxxxxx>
>>>
>>
>> That "assignment" is rather wrong, though; it implies that the two are identical, which they are not; nor does it imply the relationship is fixed (that is provided by FRED, not LKGS). Perhaps just call it "Load user space GS".
>
>I see your point, is the following assignment better?
>
> MSR_KERNEL_GS_BASE = gs_sel->base
>

Except that that is also wrong, because that's not all of what the instruction does. "Load user space GS" is really what it does, despite the initiate historical naming.