RE: [PATCH v10 36/38] x86/fred: Add fred_syscall_init()

From: Thomas Gleixner
Date: Wed Sep 20 2023 - 04:18:22 EST


On Wed, Sep 20 2023 at 04:33, Li, Xin3 wrote:
>> > +static inline void fred_syscall_init(void) {
>> > + /*
>> > + * Per FRED spec 5.0, FRED uses the ring 3 FRED entrypoint for SYSCALL
>> > + * and SYSENTER, and ERETU is the only legit instruction to return to
>> > + * ring 3, as a result there is _no_ need to setup the SYSCALL and
>> > + * SYSENTER MSRs.
>> > + *
>> > + * Note, both sysexit and sysret cause #UD when FRED is enabled.
>> > + */
>> > + wrmsrl(MSR_LSTAR, 0ULL);
>> > + wrmsrl_cstar(0ULL);
>>
>> That write is pointless. See the comment in wrmsrl_cstar().
>
> What I heard is that AMD is going to support FRED.
>
> Both LSTAR and CSTAR have no function when FRED is enabled, so maybe
> just do NOT write to them?

Right. If AMD needs to clear it then it's trivial enough to add a
wrmsrl_cstar(0) to it.